C语言如何将文本文件中的数据读到二维数组中?
文本文件(.txt)中数据的大致格式如下:123456789101112131415请问用C语言如何将这些数字读取到一个二维数组a[5][5]中,请帮忙写出语句...
文本文件(.txt)中数据的大致格式如下:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
请问用C语言如何将这些数字读取到一个二维数组a[5][5]中,请帮忙写出语句 展开
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
请问用C语言如何将这些数字读取到一个二维数组a[5][5]中,请帮忙写出语句 展开
3个回答
2015-08-02 · 知道合伙人互联网行家
关注
展开全部
C语言中从.txt文本文件中按行读取字符串数据至二维数组中,代码如下:
#include <stdio.h>
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<stdio.h>
#include<stdlib.h>
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<stdio.h>
#include<stdlib.h>
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<stdio.h>
#include<stdlib.h>
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<stdio.h>
#include<stdlib.h>
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 <stdio.h>
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;
}
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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询