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

从文本文件读数据,help解决方法

2012-03-17 
从文本文件读数据,help如何直接从文本文件读数据,然后输出呀我c语言才差了,想不出来了比如data.txt中:1赵2

从文本文件读数据,help
如何直接从文本文件读数据,然后输出呀
我c语言才差了,想不出来了

比如data.txt中:
1         赵       2000        
2         李       2300    
3         周       2100

然后还按照这样的格式全部输出在控制台下
void   print()
{
  FILE   *fp;
  int   i;
  printf( "\t报表打印\n ");

  fp=fopen( "data.txt ", "r ");
  rewind(fp);
  q=&ren[i];
  while(!feof(fp))
  {  
  //for(i=0;i <s;i++)
  //{
fscanf(fp, "%d\t%s\t%d\n ",ren[i].num,ren[i].name,ren[i].pay);
printf( "%d\t%s\t%d\n ",ren[i].num,ren[i].name,ren[i].pay);
++;
  //}
  }
}

[解决办法]
首先注意 fscanf使用中 缺少 & 预算符
[解决办法]
fscanf(fp, "%d\t%s\t%d\n ",ren[i].num,ren[i].name,ren[i].pay);
==》
fscanf(fp, "%d %2s%d ",ren[i].num,ren[i].name,ren[i].pay);

不要带上格式控制符号 ~
%s 注意长度控制 ~
[解决办法]
fscanf(fp, "%d %2s%d ",&ren[i].num, ren[i].name, &ren[i].pay);
[解决办法]
#include <stdio.h>
#include <stdlib.h>

struct test
{
int num;
char name[4];
int pay;
}ren[4];

int main()
{
FILE *fp;
int i=0;
printf( "\t报表打印\n ");

fp=fopen( "test.txt ", "r ");
while(!feof(fp))
{
fscanf(fp, "%d%2s%d ",&ren[i].num, ren[i].name, &ren[i].pay);
printf( "%d\t%s\t%d\n ",ren[i].num,ren[i].name,ren[i].pay);
i++;
}
system( "pause ");
return 0;
}

/*
test.txt 文件内容:
1 赵 2000
2 李 2300
3 周 2100
*/

热点排行