c语言文件读取 咨询代码

设计了文件数据的读取和保存功能,但是放主函数哪里都不能实现运行。想实现下次打开程序时还能有上次保存到文件的数据。希望能直接更改代码以及该在哪里插入

img

img

在主函数中,可以在程序开始时调用读取文件的函数。这样就可以在每次打开程序时读取之前保存的文件数据。

例如可以在主函数的开头插入如下代码:

n = open(e_ment, n);

此外还需要在每次对数据进行修改、删除或添加后调用保存文件的函数,以便在退出程序时保存数据。

例如可以在每个 case 后插入如下代码:

save(e_ment, n);

这样每次对数据的修改、删除或添加都会立即保存到文件中。

在退出程序时再次调用保存文件的函数以保存最新的数据。
仅供参考,望采纳。


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
    //第一步打开文件
    FILE* file = fopen("test.txt", "r");
 
    //进行判定
    if (file == NULL)
    {
        printf("打开文件失败!!!");
        return 0;
    }
 
    //ch = fgetc(file);
    //ch1 = fgetc(file);
    //printf("%c%c", ch, ch1 );
    //ch = fgetc(file);
    //ch1 = fgetc(file);
    //printf("%c%c", ch, ch1);
    //ch = fgetc(file);
    //ch1 = fgetc(file);
    //printf("%c%c", ch, ch1);
 
    //char ch,ch1;
 
    //while (EOF != (ch=fgetc(file)))
    //{
    //    printf("%c", ch);
    //}
 
    char sentence[200] = {0};
 
    if (fgets(sentence, 200, file) != NULL)
        printf("%s", sentence);
 
    //while(fgets(sentence,200,file) != NULL)
    //    printf("%s", sentence);
 
 
    //while (1)
    //{
 
    //}
    //第三步关闭文件
    fclose(file);
 
    return 0;
 
 
 
 
 
}

使用格式化存取函数试试

可以试一下这段代码,望采纳



#include <stdio.h>



int readFile(const char *fname, char *buffer, int bufferLen)
{
    int retLen=0;
    FILE *f;
    f = fopen(fname, "r"); //r=打开一个已有的文本文件,允许读取文件。
    if(f) {
        retLen= fread(buffer, 1, bufferLen, f);
        buffer[retLen]=0;
        fclose(f);
    }
    if(retLen <= 0){ 
        printf("读取文件错误,或者空文件!");
        return 0;
    }
    return retLen;
}


int main()
{
    char buf[255];
    const char fname[]= "c:/1.txt";
    
    int retLen= readFile(fname,buf, 255);
    if(retLen != 0) {
        printf("读取的数据是: %s \n",buf);
    }
    getchar();
    return 0;
}


现在运行有什么问题,每次程序关闭后,文件中是否有内容,代码中有疑问的地方多加点printf输出看看吧。