fprintf不工作

我正在测试fprintf()的用法,但它无法正常工作。 当我第一次编写代码时,我忘了在fprintf()添加\n并且它有效。 但是,当我在“test 1 2”开头添加\n时,它停止工作。

 #include  #include  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我按Tab键并输入文件,但我无法在此处管理)

ab \ tcd \ te \ n fg

对于打开要追加的文件(包含“+”符号的文件),允许输入和输出操作,应该在写入操作之后刷新(fflush)或重新定位(fseek,fsetpos,rewind)流。读取操作或读取操作没有到达文件结尾,然后是写入操作。

资源

所以添加这个:

 fflush(f); 

fprintf之前,如果要在不删除其先前内容的情况下附加到文件,或者:

 rewind(f); 

如果您想覆盖内容,请根据您的评论指出。