- ベストアンサー
itoaは4バイト整数を
数文字列に変換しますが 8バイト整数を10進数整数文字列に変換する関数はあるでしょうか? また逆にatoiのように兆単位の10進整数整数文字列を8バイト整数に変換する関数はあるでしょうか? OSは98seでコンパイラはBorland C++5.51を使っていてAPIやSTLなどでプログラミングしています
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
8バイトということはlong long型ですね。 C++が標準でlong long型を規定しているか (あるいはBorland C++が対応しているか) は知らないですが、サポートしていれば、 atoll、lltoaが使えるのではないでしょうか。 数値から文字列の場合は、sprintfやsnprintfも使えると思います。
その他の回答 (2)
- meeee
- ベストアンサー率31% (6/19)
残念ながらBorland C++5.51にはないかもしれません。C#では、Int64(64ビット整数)型があるそうです。構造体と言っていますので、結局のところ、4バイト整数2つをメンバとして持つ構造体と想像しています。 ならば、どこかの誰かが、同様のクラスを既に作成されているかもしれませんね。
お礼
ありがとうございます 以下で動きました #include<iostream> using namespace std; void main(void) { __int64 I,J,K,L,M,N; char s[999]; I=_atoi64("9999999999999999"); cout<<I<<endl; I=9999999999999999; _i64toa(I,s,10); cout<<s<<endl; }
- notnot
- ベストアンサー率47% (4900/10358)
itoa,atoiに対応してltoa,atolがありませんか?
お礼
#include<iostream> using namespace std; void main(void) { __int64 I,J,K,L,M,N; char s[999]; I=_atoi64("9999999999999999"); cout<<I<<endl; I=9999999999999999; _i64toa(I,s,10); cout<<s<<endl; } で動きました!
補足
ありがとうございます atolとatoiは同じで4バイト用のようです またltoaとitoaも同じようです 昔のDosやWin3.1ではないのでlong=intですね?
お礼
失礼しました 以下の間違いです #include<iostream> #include<windows.h> using namespace std; void main(void) { __int64 I,J,K,L,M,N; I=atoll("9999999999999999"); cout<<I<<endl; } ともかくatollが未定義エラーです
補足
ありがとうございます #include<iostream> #include<windows.h> using namespace std; void main(void) { string str,str0,str1; int i,j,k,l,m,n; int sum; boolean b; __int64 I,J,K,L,M,N; I=atoll("9999999999999999"); cout<<I<<endl; } でatollが未定義エラーになります なにかヘッダがいるのでしょうか?