
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之间有一个空格。 展开
//源代码:
#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之间有一个空格。 展开
1个回答
展开全部
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" 这个文件的路径是在哪?
{
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" 这个文件的路径是在哪?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询