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

//读取一个文件的内容并输出//源代码:#include<stdio.h>#include<stdlib.h>#defineMAX5structdata{charnum[... //读取一个文件的内容并输出
//源代码:
#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之间有一个空格。
展开
 我来答
fastfs
2015-04-16 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:844万
展开全部
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" 这个文件的路径是在哪?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式