C同时读写文件

时间:2014-01-27 09:14:12

标签: c file-io

我试图理解用C语言读取和写入文件的函数之间的交互。

在这个例子中,我使用了一个文本,里面有三行短文。

如果按照下面的说明执行程序,则会将NOTHING写入文件。为什么呢?

此外,如果我注释掉fgets()指令,则会执行两个fprintf(这些命令会覆盖文件第一行的一部分,这是我所要求的)。

我不知道fgets阻止fprintf发生的原因。我认为在fgets指令之后,XX文件将从文件的第二行开始写入。我错过了什么?

    #include <stdio.h>
    #include <string.h>

    #define MAX 100
    #define FILENAME "file.txt"

    int main(){
        FILE *f1;
        char buff[MAX];

        f1 = fopen(FILENAME,"r+");
        if(f1==NULL) return 0;

        fgets(buff,MAX,f1); 
        printf("%s",buff);

        fprintf(f1,"XX \n");
        fprintf(f1,"XX \n");

        fclose(f1); 
}

编辑:感谢评论,(和这个问题fprintf not working)我理解解决方案是在读取和写入文件之间执行fseek。如果可能的话,我想了解为什么需要这个fseek,即文件指针会发生什么......

0 个答案:

没有答案