0

私はC++で次のプログラムを持っています:

このプログラムには2つの問題があります。まず、ユーザーがテキスト内のスペースを使用する場合、最初のスペースの後のデータは保存されません。どうすればこの問題を解決できますか?

次に、あるセッションで追加されたテキストと別のセッションで追加されたテキストの間に改行を入れたいと思います。プログラムにそうするように指示するにはどうすればよいですか?ありがとう :)

4

3 に答える 3

0

最初の問題:cin>>textを使用しないでください。これにより、最初の空白が見つかるまで文字列が読み取られます。おそらくcin.getlineを使用したいと思うでしょう。

2番目の問題:ユーザーの入力をファイルに書き込んだ後、単純にcout<<endlを実行できます。

ファイルの最後に改行を入れたくない場合は、新しいファイルと既存のファイルを区別する必要があります。これを行うには、write_to_file関数を変更して、ファイルがすでに存在するかどうかを示す3番目の引数を受け取ります。存在する場合は、ユーザーの入力をファイルに書き込む前にcout<<endlを実行します。

于 2012-11-01T18:20:08.020 に答える
0

getline一度にユーザー入力の行を取得するために使用できます。セッション間の改行については、ユーザーがテキストの入力を終えた後、ファイルに新しい行を書き込むことはできません。そうすれば、次にファイルを開くときに、改行の後に開始します。

于 2012-11-01T18:20:22.037 に答える
0

write_to_file関数でfprintfの代わりにfwriteを試してください。ただし、構文は少し異なります。

fwrite(data、size_t、count、fp);

これにより、サイズsize_tのアイテムのカウント数がデータからfp(ファイルポインター)に書き込まれます。

于 2012-11-01T18:23:46.043 に答える