コードは次のとおりです。
std::ofstream f("file1.txt");
f<<"123"<<std::endl<<"456"; //(*1)
/*std::stringstream ordinary_strstream; This works too
ordinary_strstream<<"123"<<'\n'<<"456";
f<<ordinary_strstream.str();*/
std::wstringstream s;
s<<L"123"<<std::endl<<L"456"; //(*2)
s<<L"123"<<L"\n"<<L"456"; //(*3)
s<<"123"<<WCHAR(13)<<WCHAR(10)<<"456";//(*4)
HANDLE h =CreateFileW(L"file2.txt", GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
ULONG l;
WriteFile(h, s.str().c_str(), s.str().length() * 2, &l, NULL);
(*1) の場合は改行がありますが、(*2) と (*3) の場合は file2.txt に改行がありません。(*3)の中には改行があります。notepad.exe
ブラウジングに使っています。16 進エディタには0x0D
バイトは表示されず、0x0A
.
改行をユニコードテキストファイルに正しく配置するにはどうすればよいですか? ありがとうございました。