我正在测试fprintf()
的使用情况,但它无效。当我第一次编写代码时,我忘记在\n
内添加fprintf()
并且它有效。但是,当我在“test 1 2”开头添加\n
时,它停止了工作。
#include <stdio.h>
#include <stdlib.h>
int main ()
{
FILE* f = fopen("test.txt", "r+");
if( f == NULL) return 0;
char str[4][10];
for(int a = 0; a <= 3; ++a)
{
fscanf(f, " %[^\t\n]s", str[a]);
printf("%s\n", str[a]);
}
fprintf(f, "\ntest 1 2\n");
fclose(f);
system("pause");
return 0;
}
并且我的test.txt包含(而不是\t
和\n
我按下了标签并输入了文件,但我无法在此管理它。
a b \ t c d \ t e \ n f g
答案 0 :(得分:7)
对于打开附加的文件(包含“+”符号的文件),打开 允许输入和输出操作,流应该 刷新(fflush)或重新定位(fseek,fsetpos,倒带)之间 写入操作后跟读取操作或者 阅读操作没有到达文件结尾,然后是 写作。
所以加上这个:
fflush(f);
如果你想在不删除以前内容的情况下附加到文件,请在fprintf
之前,或者:
rewind(f);
如果你想覆盖你的评论指出的内容。