3

我正在测试它的用法,fprintf()但它不起作用。当我第一次编写代码时,我忘记在\n里面添加fprintf()它并且它起作用了。但是,当我\n在“test 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;
}

并且我的 test.txt 包含(而不是\t\n按 tab 并输入文件,但我无法在这里管理它)

ab\tcd\te\n fg

4

1 回答 1

8

对于为追加而打开的文件(包含“+”号的文件),在这些文件上允许输入和输出操作,应在写入操作之后刷新(fflush)或重新定位(fseek、fsetpos、rewind)流读取操作或未到达文件末尾的读取操作,然后是写入操作。

来源

所以添加这个:

fflush(f);

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

rewind(f);

如果您想覆盖内容,如您的评论所指出的那样。

于 2013-01-16T17:48:40.537 回答