c语言从文件中读取数据的问题

#include<stdio.h>
int main()
{
int a[10];
int i=0,j,max,min;
FILE*inptr;
inptr=fopen("test.txt","r+");

while(fscanf(inptr,"%d",&a[i]) != EOF)
i++;

for(j=0;j<10;j++)
max=a[0];
if(max<a[j]) max=a[j];
for(j=0;j<10;j++)
min=a[0];
if(min>a[j]) min=a[j];
fputs(inptr,"max=%d\nmin=%d",max,min);

}
这是我的代码,文件的内容是十个整数,程序的目的是从txt中读取十个数字,并进行比较,将最大值和最小值输入到文件中。但测试更改多次都不成功 请求帮助!

我想应该没错了

但我的编译器是新版 不能测试

#include<stdio.h>
int main()
{
int a[10];
int i = 0, j, max, min;
FILE*inptr;
inptr = fopen("test.txt", "r+");

while (fscanf(inptr, "%d", &a[i]) != EOF)
i++;

for (j = 0; j < 10; j++) { //在这边你没加上{} 所以for loop只会一直运行max=a[0] 不会比较数字 如果没加上{} if/for loop/while他们只会包含下一行的指令
max = a[0];
if (max < a[j])
max = a[j];
}
for (j = 0; j < 10; j++) { //跟上面一样的错误
min = a[0];
if (min > a[j])
min = a[j];
}
fprintf(inptr, "max=%d\nmin=%d", max, min); //fputs不是这样用的 fputs是输出一串字串在file里面) 你应该用fprintf

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-03-27
如果格式一样的话用fscanf最简单、
伪代码:
int dummy;
fscanf(fp, "class %d age %d %d %d %d", dummy, dummy, dummy, dummy, dummy);

如果是其它,举个例子:
例如 我的文件中一行里是 ABC DEF 10 20
并且每一行都是 %s %s %d %d的格式
如何将他们分别读取出来进行使用呢?
代码如下:
#include "stdio.h"
void main()
{
FILE *f=fopen("c:\\a.txt","r");
char sz0[100];
char sz1[100];
int d0,d1;
if(f)
{
while(!feof(f))
{
if(4==fscanf(f,"%s%s%d%d",sz0,sz1,&d0,&d1))
{
printf("%s %s %d %d\n",sz0,sz1,d0,d1);
}
}
fclose(f);
}
else
{
printf("fail to open file.\n");
}}
相似回答