首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

从文本文件读数据后输出,help,该如何解决

2012-03-11 
从文本文件读数据后输出,help#include stdio.h#include stdlib.hstructtest{intnumcharname[4]intpa

从文本文件读数据后输出,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;
}

热点排行