我想逐行添加元素到文件中,而不是文件的末尾。 我寫了這段代碼,但結果是我只能在文件末尾附加元素。將每行末尾的元素添加到文件中
#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