DOBON.NET DOBON.NETプログラミング掲示板過去ログ

データファイルの作成

環境/言語:[VC++6.0]
分類:[その他]

VC++ 6.0 でデータファイルを作成する場合、変数が文字列の場合問題ないのですが、整数の場合、ビルドエラーとなります。
C言語で整数を文字列に変換する方法を教えてください。
作成した内容を次に示します。
//
 CString FName;
CFile fobj;
CFileException err;
  FName="d:\\test.csv";

//ファイルを開く
if(!fobj.Open(FName, CFile::modeCreate | CFile::modeReadWrite, &err)){
#ifdef _DEBUG
afxDump << "File could not be opened " << err.m_cause << "\n";
#endif
}

fobj.Write(m_PRG_NAME1,30);
fobj.Close();

上記の変数「m_PRG_NAME1」は文字列変数です。
ここを整数の変数にするとビルドエラーとなります。
ここを乗り越えてもかなりつらそうですが・・・

http://msdn2.microsoft.com/ja-jp/library/18he3sk6(VS.80).aspx

CString::Formatなんかを使って、数字を文字に変換してください。
■No15555に返信(中博俊さんの記事)
> ここを乗り越えてもかなりつらそうですが・・・
>
> http://msdn2.microsoft.com/ja-jp/library/18he3sk6(VS.80).aspx
>
> CString::Formatなんかを使って、数字を文字に変換してください。

ありがとうございました。
いままで、VBしか使用したことがなく・・VCは始めたばかりで
わからないことばかりです。もう少し具体的に教えて頂けませんせんか?
例えば、VBでは文字変数を数値に変更する場合、
(例)
 整数Iを文字列に変更する場合
 str(I)
 で変換できます。
VCの場合はCString::Formatをどう使用すればいいのですか?



 
■No15557に返信(CO_岡さんの記事)
> ■No15555に返信(中博俊さんの記事)

sprintf( "%s", i ) ;
で行けませんか?
■No15605に返信(mochaさんの記事)
> ■No15557に返信(CO_岡さんの記事)
>>■No15555に返信(中博俊さんの記事)
>
> sprintf( "%s", i ) ;
> で行けませんか?

sprintf( str, "%d", i ) ;
の誤りでした
2006/05/01(Mon) 17:17:17 編集(投稿者)

CString str;
str.Format( _T( "%d" ), i );

ファイルに書き込むときはバイト数も欲しいので、
fobj.Write( str,str.GetLength() * sizeof( TCHAR ) );
となります。


また、文字列でしか扱わないのであれば、CStdioFileクラスを使うと
CStdioFile::WriteStringメソッドで簡単に書き出すことが出来ます。
■No15612に返信(Blueさんの記事)
> 2006/05/01(Mon) 17:17:17 編集(投稿者)
>
> CString str;
> str.Format( _T( "%d" ), i );
>
> ファイルに書き込むときはバイト数も欲しいので、
> fobj.Write( str,str.GetLength() * sizeof( TCHAR ) );
> となります。
>
>
> また、文字列でしか扱わないのであれば、CStdioFileクラスを使うと
> CStdioFile::WriteStringメソッドで簡単に書き出すことが出来ます。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板