問題タブ [fgetpos]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
7106 参照

c - Cで同時にファイルを読み書きする

1 行だけが残るか、すべての行が使い果たされるまで、ファイル内の 2 行ごとにスワップすることになっています。その際に別のファイルを使用したくありません。

これが私のコードです:

this.txt の内容:

プログラム実行後のコンテンツ

同じ間違った結果を得るためにfseek、代わりに使用してみました。fgetpos

私が考えたところでは、2 番目の while ループが 2 回実行された後(つまり、最初の 4 行が処理された後)、カーソルは 17 番目のバイトにあるはずです(への呼び出しによって返されるftell(fp)) 。 4 行目以降の内容は変更されておらず、ループの 3 回目の実行時に何らかの理由fgetsで呼び出されると、配列 line1 と line2 に読み込まれる内容はそれぞれ "c\n" と "ddd\n" になります。

繰り返しますが、これを達成するために別のファイルを使用したくありません。画面の背後で何が問題になっているのかを正確に把握する必要があるだけです

任意のリードをいただければ幸いです。ありがとうございました。