• ベストアンサー

itoaは4バイト整数を

数文字列に変換しますが 8バイト整数を10進数整数文字列に変換する関数はあるでしょうか? また逆にatoiのように兆単位の10進整数整数文字列を8バイト整数に変換する関数はあるでしょうか? OSは98seでコンパイラはBorland C++5.51を使っていてAPIやSTLなどでプログラミングしています

質問者が選んだベストアンサー

  • ベストアンサー
  • hpsk
  • ベストアンサー率40% (48/119)
回答No.2

8バイトということはlong long型ですね。 C++が標準でlong long型を規定しているか (あるいはBorland C++が対応しているか) は知らないですが、サポートしていれば、 atoll、lltoaが使えるのではないでしょうか。 数値から文字列の場合は、sprintfやsnprintfも使えると思います。

keyguy
質問者

お礼

失礼しました 以下の間違いです #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が未定義エラーです

keyguy
質問者

補足

ありがとうございます #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が未定義エラーになります なにかヘッダがいるのでしょうか?

その他の回答 (2)

  • meeee
  • ベストアンサー率31% (6/19)
回答No.3

残念ながらBorland C++5.51にはないかもしれません。C#では、Int64(64ビット整数)型があるそうです。構造体と言っていますので、結局のところ、4バイト整数2つをメンバとして持つ構造体と想像しています。 ならば、どこかの誰かが、同様のクラスを既に作成されているかもしれませんね。

keyguy
質問者

お礼

ありがとうございます 以下で動きました #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)
回答No.1

itoa,atoiに対応してltoa,atolがありませんか?

keyguy
質問者

お礼

#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; } で動きました!

keyguy
質問者

補足

ありがとうございます atolとatoiは同じで4バイト用のようです またltoaとitoaも同じようです 昔のDosやWin3.1ではないのでlong=intですね?

関連するQ&A