C语言中从.txt文本文件中按行读取字符串数据至二维数组中,代码如下:
#include
main()
{
char s[10][20] = {0}; //定义一个二维数组
int i=0;
FILE *fp; //文件指针
fp = fopen("1.txt","r"); //读取文本文件1.txt
for(i=0;i<3;i++)
{
fscanf(fp,"%s",s[i]);
printf("%s\n",s[i]); //打印数据到二维数组中
}
}
//先把文本里的字符读到字符数组temp中再做后续处理
#include
#include
void main()
{
int a[5][3]={0};
char temp[80]={'\0'};
int i=0,j=0,k=0;
FILE *fp;
if((fp=fopen("DATA.txt","r"))==NULL)
{
printf("cannot open this file\n");
exit(0);
}
else
while(!feof(fp))
{
temp[i]=fgetc(fp);
i++;
}
fclose(fp);
for(j=0;j<3;j++)
{
for(i=0;i<5;i++)
{
while(temp[k]!=' '&&temp[k]!='\n'
&&int(temp[k])!=-1)
{
a[i][j]=a[i][j]*10+(temp[k]-'0');
k++;
}
if(int(temp[k])==-1)
break;
if(temp[k]==' ')
k++;
if(temp[k]=='\n')
k++;
}
if(int(temp[k])==-1)
break;
}
for(j=0;j<3;j++)
{
for(i=0;i<5;i++)
printf("%d\t",a[i][j]);
printf("\n");
}
}
#include
#include
void main()
{
int a[5][3]={0};
char temp[80]={'\0'};
int i=0,j=0,k=0;
FILE *fp;
if((fp=fopen("DATA.txt","r"))==NULL)
{
printf("cannot open this file\n");
exit(0);
}
else
for(j=0;j<3;j++)
for(i=0;i<5;i++)
fscanf(fp,"%d",&a[i][j]);
fclose(fp);
for(j=0;j<3;j++)
{
for(i=0;i<5;i++)
printf("%d\t",a[i][j]);
printf("\n");
}
}
#include
int main(void)
{
FILE * f = 0; int a[5][5]; int i,j;
f = fopen("a.txt", "r");
if(!f) return 0;
for(i = 0; i < 5; i++) for(j = 0; j < 5; j++)
fscanf("%d", &(a[i][j]));
/*已经读完了*/
fclose(f);
return 0;
}