【发布时间】:2018-12-27 22:41:23
【问题描述】:
我是 C 语言的新手,我刚开始处理文件。 我有一个代码,它将一些值从数组写入文件,然后我想打印文件中的所有内容。然而,fgets 没有从 f 得到任何东西。字符串 s 为空。我究竟做错了什么? 这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
FILE *f;
if ((f=fopen("fis.txt","r+"))==NULL) { printf ("Error\n");
exit(1);
}
float *v; int n;
char s[1000];
scanf("%d",&n);
v=malloc(n*sizeof(float)); int x;
for (int i=0;i<n;i++) {
scanf("%f",&v[i]);
x=fprintf(f,"%f\n",v[i]);
if (x<0) perror("Error:");
}
fflush(stdin);
fgets(s,sizeof(s),f); perror("err ");//NO ERROR
printf("%d",strlen(s));//it's 0
printf("%s",s);//nothing
perror("err ");//NO ERROR
printf("\n");
free(v);
fclose(f);
}
【问题讨论】:
-
请在发布前正确格式化您的代码
-
在你写完文件后,你可以关闭它,然后再次调用 fopen 重新打开它。第一次调用
fopen可以使用“w”作为模式来写入一个新文件,第二次可以使用“r”来读取它。 -
我很抱歉我的代码格式。谢谢