2

Cのファイルから読み込もうとしていますが、読み終わったら同じファイルに書きたいと思っています。私はこれにfread()を使おうとしています。「\0」に遭遇した後、freadがポインタを進めるかどうか誰かが知っていますか?つまり、読み取りが終了した後、ポインターを進める必要がありますか、それともfwriteを使用してファイルへの書き込みをすぐに開始する必要がありますか?

4

2 に答える 2

2

freadに達するまでファイルの位置(ポインタではなく)を進めますEOF

ただし、に遭遇したからといって読み取りが停止することはありません'\0'。実際、fgetsに遭遇したときにのみ読み取りを停止し\nます。私が知っている標準ライブラリ関数は、でファイルの読み取りを停止しません'\0'

于 2013-01-26T23:14:47.873 に答える
1

はい、EOFに遭遇するかエラーが発生しない限り、ポインタを進めます。

戻り値
関数fread()およびfwrite()は、読み取りまたは書き込みされたバイト数だけ、ストリームのファイル位置インジケーターを進めます。読み取りまたは書き込みされたオブジェクトの数を返します。エラーが発生した場合、またはファイルの終わりに達した場合、戻り値は短いオブジェクト数(またはゼロ)です。

于 2013-01-26T23:11:01.417 に答える