こんにちわ。
WIN2000でVC6.0のMFCを使っています。
CFileを使ってtxtファイルに書き込んでいるのですが、
書き込んだ後、改行をして次の入力は2行目から書き込みと
したいのですが、改行コードの組み込み方がわからないので
わかる方いたら返事をお願いします。
以下のようにコードを組むとファイルに書き込んだとき、
文字化けした文字が出て改行はされるのですが、次の
書き込みは1行目の次の桁からになります。
CString data;
m_edit.GetWindowText(data);
data=data+'\n';
CFile test(_T(\\smpl.txt),CFile::modeWrite);
test.Seek(0,CFile::begin);
test.Write(data,6);
test.Close();
思ったのですが、テキストを書き込みたいのですよね。
テキストなら、CFileより、CStdioFileを使ったほうがよいのでは?
それで、Writeが、WriteStringに変えれば、動くような。
改行コードで検索してみましょう。
意味を理解したほうがいいと思うので・・・。
あえて答えは書きません。
こんなんどうですか?
FILE* fp = fopen(ファイル名,a+);
fprintf(fp,%s\n,書きこむ文字列);
fclose(fp);
ここだけみると認識を間違う人がいると思うのでさらに補足です。
OS 改行形式 漢字コード 記述
UNIX LF JIS, EUC, (ShiftJIS) \n
Windows CR+LF ShiftJIS \r\n
Macintosh CR ShiftJIS \r
テキストファイルの改行コードは上記になっていて、
エディタによって他機種の改行コードを認識するものとしないものがあります。