C语言读取文件函数fscanf()问题。

//读取一个文件的内容并输出
//源代码:
#include <stdio.h>
#include <stdlib.h>
#define MAX 5

struct data{
char num[20];
char first[20];
char last[20];
double equal;
double playtimes;
double hit;
};

int main(void)
{
FILE*fp1,*fp2;
int i,index;
double count;
fp1=fopen("data.txt","a+");
rewind(fp1);

if(fp1==NULL)
{
printf("Open data.txt File Failure.\n");
exit(1);
}

struct data person[MAX];

for(index=0;index<1;index++)
{
if(fscanf(fp1,"%s:%s%s equal: %lf",person[index].num,person[index].first,person[index].last,person[index].equal)==EOF)
{
printf("END FILE.");
exit(0);
}

}

for(i=0;i<1;i++)
{

person[i].first[0]=toupper(person[i].first[0]);
person[i].last[0]=toupper(person[i].last[0]);
printf("The num and name:\n%s:%s%s equal:%f.\n",person[i].num,person[i].first,person[i].last,person[i].equal);

}

return 0;
}

最后的double类型变量读入错误,不知道为什么?
输入语句fscanf()因为排版问题中间有很多空格,实际上是紧连接在一起的。输出语句equal和

%s之间有一个空格。

if(fscanf(fp1,"%s : %s equal: %lf",person[index].num,person[index].first, &person[index].equal)==EOF)
{
printf("END FILE.");
exit(0);
}

}
for(i=0;i<1;i++)
{

//person[i].first[0]=toupper(person[i].first[0]);
//person[i].last[0]=toupper(person[i].last[0]);
printf("The num and name:\n%s:%s equal:%lf.\n",person[i].num,person[i].first, person[i].equal);

data.txt里的数据我是这样的。
414314 : FanXiang equal:2.0

问你个问题"data.txt" 这个文件的路径是在哪?
温馨提示:答案为网友推荐,仅供参考
相似回答