1

我正在制作 ac 功能并将其与 mac 应用程序一起用于测试和学习目的。当我尝试使用此将文本打印到文件时:

FILE *f = fopen("text.txt", "w+");
fflush(f);
if (f==NULL) {
    f = fopen("text.txt", "w+");
    saveToFile(text);
    printf("null\n");
    return 0;
}
else{
    int i = fprintf(f, "%s", text);
    if (i>0) {
        return  1;
    }
    else{
        return 0;
    }
}
fclose(f);

它将它打印到文件中,但只有在我退出应用程序之后。有谁知道为什么会发生这种情况?

4

1 回答 1

7

在您return的程序到达fclose. 因此,您的程序将推迟写入文件,直到文件关闭(因为缓冲)。当您终止程序时,文件正在为您关闭。

于 2013-03-08T01:19:04.397 回答