ファイル書き込み時の改行

[戻る]
あかね 2002/01/30(水) 12:52:45
こんにちわ。

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();

とおりすがり 2002/01/30(水) 13:14:47
思ったのですが、テキストを書き込みたいのですよね。
テキストなら、CFileより、CStdioFileを使ったほうがよいのでは?
それで、Writeが、WriteStringに変えれば、動くような。

TAKA 2002/01/30(水) 16:05:59
改行コードで検索してみましょう。
意味を理解したほうがいいと思うので・・・。
あえて答えは書きません。

toru [E-Mail] 2002/02/03(日) 12:51:22
こんなんどうですか?

FILE* fp = fopen(ファイル名,"a+");
fprintf(fp,"%s\n",書きこむ文字列);
fclose(fp);

TAKA 2002/02/04(月) 10:56:33
ここだけみると認識を間違う人がいると思うのでさらに補足です。

OS        改行形式    漢字コード             記述
UNIX      LF          JIS, EUC, (ShiftJIS)   \n
Windows   CR+LF       ShiftJIS               \r\n
Macintosh CR          ShiftJIS               \r

テキストファイルの改行コードは上記になっていて、
エディタによって他機種の改行コードを認識するものとしないものがあります。

古いスレッドには追加発言できません。