c语言读取文件然后保存到数组中 20
问题如下:文件d:\\test.txt里面的数据:L232488992C1011254R121425603要求:用C语言编程逐个读取数据,每一行保存到一个数组中,比如第一...
问题如下:文件d:\\test.txt
里面的数据:
L 23 24 88 99 2
C 10 11 25 4
R 12 14 25 60 3
要求:用C语言编程逐个读取数据,每一行保存到一个数组中,比如第一行s1[0]=L,s1[1]=23,s1[2]=24....第二行s2[0]=C,s[1]=110......然后输出到屏幕,急切期待大家的帮忙,谢谢!
要求出了点问题,第二行s[1]=10 ,提问的时候输错了,意思你们明白的。。。 展开
里面的数据:
L 23 24 88 99 2
C 10 11 25 4
R 12 14 25 60 3
要求:用C语言编程逐个读取数据,每一行保存到一个数组中,比如第一行s1[0]=L,s1[1]=23,s1[2]=24....第二行s2[0]=C,s[1]=110......然后输出到屏幕,急切期待大家的帮忙,谢谢!
要求出了点问题,第二行s[1]=10 ,提问的时候输错了,意思你们明白的。。。 展开
5个回答
展开全部
c语言读取文件然后保存到数组中的流程是:
打开文件
根据文件格式循环读取数据
将数据存入数据
重复2-3,直到文件读取完毕
关闭文件
下面是示例代码:
#include<stdio.h>
int main()
{
int s[5][8];
int num[]={0,6,5,6};
int i,j;
FILE *fp;
if((fp=fopen("D:\\test.txt","r"))==NULL)
{puts("No test.txt");return 0;}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
fscanf(fp,"%d",&s[i][j]);
}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
{
if(j==1)
printf("%c ",s[i][j]);
else
printf("%d ",s[i][j]);
}
puts("");
}
fclose(fp);
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。
2.例程:
#include<stdio.h>
#include<string.h>
void main()
{
char a[100],b[100],c[100];
int i=3,j=4,k=0; //第三行,第四列
FILE *fp = fopen("data.txt","r");
while(fgets(c,100,fp)){ //读入每行数据
i--;
if(i==0) strcpy(a,c); //读到第三行数据
b[k++]=c[j-1]; //把每行的那列字符拷到b中
}
b[k]=0;
printf("第%d行数据:%s\n",i,a);
printf("第%d列数据:%s\n",j,b);
fclose(fp);
}
2.例程:
#include<stdio.h>
#include<string.h>
void main()
{
char a[100],b[100],c[100];
int i=3,j=4,k=0; //第三行,第四列
FILE *fp = fopen("data.txt","r");
while(fgets(c,100,fp)){ //读入每行数据
i--;
if(i==0) strcpy(a,c); //读到第三行数据
b[k++]=c[j-1]; //把每行的那列字符拷到b中
}
b[k]=0;
printf("第%d行数据:%s\n",i,a);
printf("第%d列数据:%s\n",j,b);
fclose(fp);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
int s[5][8];
int num[]={0,6,5,6};
int i,j;
FILE *fp;
if((fp=fopen("D:\\test.txt","r"))==NULL)
{puts("No test.txt");return 0;}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
fscanf(fp,"%d",&s[i][j]);
}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
{
if(j==1)
printf("%c ",s[i][j]);
else
printf("%d ",s[i][j]);
}
puts("");
}
fclose(fp);
return 0;
}
int main()
{
int s[5][8];
int num[]={0,6,5,6};
int i,j;
FILE *fp;
if((fp=fopen("D:\\test.txt","r"))==NULL)
{puts("No test.txt");return 0;}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
fscanf(fp,"%d",&s[i][j]);
}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
{
if(j==1)
printf("%c ",s[i][j]);
else
printf("%d ",s[i][j]);
}
puts("");
}
fclose(fp);
return 0;
}
追问
输出的数据不是我文本里的数据啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-04-20
展开全部
#include<stdlib.h>
void main()
{
FILE *fin;
int x[10],t;
int i,j;
fin=fopen("test.dat","r");
for (i=0;i<10;i++) fscanf(fin,"%d",&x[i]);
fclose(fin);
for (i=0;i<9;i++)
for (j=i+1;j<10;j++)
if (x[i] > x[j]);
for (i=0;i<10;i++) printf("%d ",x[i]);
}
假定是整型数,用空白分隔,存在文件 test.dat中。
例如:
22 33 11 5 6 8 10 100
99 71
结果是:
5 6 8 10 11 22 33 71 99 100
另外,团IDC网上有许多产品团购,便宜有口碑
void main()
{
FILE *fin;
int x[10],t;
int i,j;
fin=fopen("test.dat","r");
for (i=0;i<10;i++) fscanf(fin,"%d",&x[i]);
fclose(fin);
for (i=0;i<9;i++)
for (j=i+1;j<10;j++)
if (x[i] > x[j]);
for (i=0;i<10;i++) printf("%d ",x[i]);
}
假定是整型数,用空白分隔,存在文件 test.dat中。
例如:
22 33 11 5 6 8 10 100
99 71
结果是:
5 6 8 10 11 22 33 71 99 100
另外,团IDC网上有许多产品团购,便宜有口碑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询