从文本文件读数据后输出,help
#include <stdio.h>
#include <stdlib.h>
struct test
{
int num;
char name[4];
int pay;
}ren;
int main()
{
FILE *fp;
printf( "\t报表打印\n ");
fp=fopen( "data.txt ", "r ");
while(!feof(fp))
{
fscanf(fp, "%d%2s%d ",&ren.num, ren.name, &ren.pay);
printf( "%d\t%s\t%d\n ",ren.num,ren.name,ren.pay);
}
system( "pause ");
return 0;
}
/*
data.txt 文件内容:
1 1 1
2 2 2
3 3 3| //光标在这里
*/
如果data.txt文件是,输出就正确!
/*
data.txt 文件内容:
1 1 1
2 2 2
3 3 3
| //光标在这里
*/
输出就错误了,怎么改呀!
输出成
1 1 1
2 2 2
3 3 3
3 3 3
[解决办法]
判断fscanf的返回值
#include <stdio.h>
#include <stdlib.h>
struct test
{
int num;
char name[4];
int pay;
}ren;
int main()
{
FILE *fp;
printf( "\t报表打印\n ");
fp=fopen( "data.txt ", "r ");
while(!feof(fp))
{
if ( fscanf(fp, "%d%2s%d ",&ren.num, ren.name, &ren.pay) == 3 )
{
printf( "%d\t%s\t%d\n ",ren.num,ren.name,ren.pay);
}
}
system( "pause ");
return 0;
}