怎么将文件中的多行字符串读入到一个二维数组中?
求助:如何将文件中的多行字符串读入到一个二维数组中????
在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。
在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逐个读单词,遇到制表符、空格或者换行符结束