• ベストアンサー

文字列とWriteFile関数について

char* に格納した文字列をWriteFile関数でテキストファイルにそのまま書き込もうとすると MessageBoxで表示したときは改行されていたのに、Notepadで見ると改行されていませんでした。 どうすればこの問題は解決しますか?

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

具体的にはどのような文字列を書き込もうとしたのでしょうか? 一つの可能性としては、改行として '\n' しか書き込んでいないというものでしょうか。 notepadは '\n' だけのものを改行とは認めず、改行するには '\r' + '\n' のならびにする必要があります。 MessageBoxでもWindowsのバージョンによって違ったりしますが、 '\r' + '\n' ではなく '\n' だけでも表示上で改行されます。 fprintf/fputsなどの関数だとテキストモードでファイルをオープンしていれば '\n' → \r\n の変換を自動でしてくれますが、WriteFileはそういったことは してくれません。

mozukux382
質問者

お礼

返事が遅れてすいません、ありがとうございましたおかげでうまくプログラミングができました。

関連するQ&A