fprintf不工作

bgu*_*gun 2 c io

我正在测试它的使用情况,fprintf()但它无法正常工作.当我第一次编写代码时,我忘记添加\n内部fprintf()并且它有效.但是,当我\n在"测试1 2"的开头添加时,它停止工作.

#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;
}
Run Code Online (Sandbox Code Playgroud)

我的test.txt包含(而不是\t\n我按下选项卡,并在文件中输入,但我不能在这里进行管理)

ab\tcd\te \n fg

Adr*_*ián 7

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

资源

所以加上这个:

fflush(f);
Run Code Online (Sandbox Code Playgroud)

之前你fprintf如果要追加到该文件,但不删除之前的内容,或者这样:

rewind(f);
Run Code Online (Sandbox Code Playgroud)

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