设计了文件数据的读取和保存功能,但是放主函数哪里都不能实现运行。想实现下次打开程序时还能有上次保存到文件的数据。希望能直接更改代码以及该在哪里插入
在主函数中,可以在程序开始时调用读取文件的函数。这样就可以在每次打开程序时读取之前保存的文件数据。
例如可以在主函数的开头插入如下代码:
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输出看看吧。