• ベストアンサー

C++でofstreamに空白を含む文字列を<<するとそれ以降の文字が書き込まれない

以下のようなテストプログラムを書いたのですが、 期待した動作になりません。 #include <fstream> int main() { std::ofstream ofs("C:/test.txt"); char moji[] = "aaa bbb"; ofs << moji << std::flush; ofs.close(); } テキストファイルにはaaaしか書き込まれず、bbbが無視されています。 ifstreamが空白文字までで処理をとめるのは知っていましたが、 ofstreamが書き込む際も同じなのでしょうか。 空白を含む文字列を書き込むにはどうすればよいでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

> ofstreamが書き込む際も同じなのでしょうか。 当方の環境(Borland C++ Compiler)では、 "aaa bbb"の7バイトを書込みました。

rotofrot
質問者

お礼

すみません。勘違いでした。 無事動作いたしました。 お手数おかけしました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

あなたの使っている環境は? 手元の Visual Studio 2008 (Windows XP) と gcc 4.1.2 でも #1 の通り "aaa bbb" が出力されてます.

rotofrot
質問者

お礼

お手数おかけしました。 勘違いでした。 失礼いたしました。