ファイルの最後ではなく、行単位で要素を追加したい。 私はこのコードを書いたが、結果はファイルの最後に要素を追加できるだけだった。各行の末尾にある要素をファイルに追加する
#include <stdio.h>
#include <stdio.h>
int main(void)
{
static const char filename[] = "m.txt";
FILE *file = fopen(filename, "r+a");
char *a = "ok";
if (file != NULL)
{
char line[128]; /* or other suitable maximum line size */
while (fgets(line, sizeof line, file) != NULL) /* read a line */
{
fputs(a, file); /* write the line */
}
fclose(file);
}
else
{
perror(filename); /* why didn't the file open? */
}
return 0;
}
いくつかの回答はバッファに言及しています。
ここでバッファーとちょっと混乱します。それは、私は複数の行をメモリに読み込んでそれを修正しなければならないということですか?そしてバッファリングはJavaのBufferedReaderクラスと同じですか?
ファイルの内容を上書きしたり、バッファを使用してファイルの内容全体を置き換えたりするため、これを行うことはできません。 –
コードに関連しないので、C++の言及を削除しました。 – MSalters
あなたが何をしたいのかははっきりしていません。あなたは何を追加しようとしていますか?そして終わりではない場合はどこに追加しようとしていますか?おそらく、意図した入力と出力の例が役に立ちます。 – kaylum