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

怎么将文件中的多行字符串读入到一个二维数组中?

2012-11-15 
求助:如何将文件中的多行字符串读入到一个二维数组中????在1.txt这个文件中有这样三行数据:asdf adfe de d

求助:如何将文件中的多行字符串读入到一个二维数组中????
在1.txt这个文件中有这样三行数据:
asdf a
dfe de d
de i am
利用下面的程序想将其读入到一个二维数组中,可在输出时a[1][5]应该是a字符,可是输出什么也没有,不知道哪里错了,请指教!?
#include <stdio.h>
#include <stdlib.h>
int main()
{FILE *f1,*f2;
 char a[101][31]={0};
 int i,j,x,num=0,sum=0;
 f1=fopen("1.txt","r");
 f2=fopen("2.txt","w");
 for(i=1;i<101;i++)
 {fscanf(f1,"%s",a[i]);
  if(feof(f1)==EOF)
  break;}
 for(i=1;i<6;i++)
  printf("%c",a[1][i]); 
 fclose(f1);
 fclose(f2);
getch();
}


[解决办法]
fscanf(f1,"%s",a[i])遇到空格就停止了,读取一行要用fgets。

C/C++ code
#include <stdio.h>#include <stdlib.h>int main(){FILE *f1,*f2; char a[101][31]={0}; int i,j,x,num=0,sum=0; f1=fopen("1.txt","rt"); f2=fopen("2.txt","wt"); for(i=1;i<101;i++) {//fscanf(f1,"%s",a[i]);  fgets(a[i], 30, f1);  if(feof(f1)==EOF)  break;} for(i=0;i<6;i++)  printf("%c",a[1][i]);  fclose(f1); fclose(f2);getch();}
[解决办法]
读取一行要用fgets,遇到\n结束
用fscanf逐个读单词,遇到制表符、空格或者换行符结束

热点排行