C语言怎么从TXT文件中读入数据?
132,133,134,11,12,139,140,62,63,64,65,66,67,1,2,3,4,5,6,7,48,49,50,138,16,17,20,101,1...
132,133,134,11,12,139,140,62,63,64,65,66,67,
1,2,3,4,5,6,7,48,49,50,138,16,17,20,
101,102,103,104,105,106,146,147,148,107,108,109,110,96,
21,22,23,24,25,25,27,28,29,30,
41,42,8,9,10,46,47,
51,52,53,54,55,56,57,58,59,60,
73,74,75,71,72,18,97,98,19,129,130,
137,136,13,14,144,145,15,128,
77,78,31,32,35,76,149,150,99,100,119,
91,92,93,94,95,116,117,114,118,120,
81,82,83,84,85,122,123,
112,111,43,44,45,113,115,36,37,38,39,40,25,126,127,
131,135,61,69,70,
141,142,143,86,68,87,90,
121,88,89,124,179,80,33,34
文件里的数据格式如上,想要把这150个数存到一个数组里,代码应该怎么写?文件名字随便取一个吧。 展开
1,2,3,4,5,6,7,48,49,50,138,16,17,20,
101,102,103,104,105,106,146,147,148,107,108,109,110,96,
21,22,23,24,25,25,27,28,29,30,
41,42,8,9,10,46,47,
51,52,53,54,55,56,57,58,59,60,
73,74,75,71,72,18,97,98,19,129,130,
137,136,13,14,144,145,15,128,
77,78,31,32,35,76,149,150,99,100,119,
91,92,93,94,95,116,117,114,118,120,
81,82,83,84,85,122,123,
112,111,43,44,45,113,115,36,37,38,39,40,25,126,127,
131,135,61,69,70,
141,142,143,86,68,87,90,
121,88,89,124,179,80,33,34
文件里的数据格式如上,想要把这150个数存到一个数组里,代码应该怎么写?文件名字随便取一个吧。 展开
5个回答
展开全部
像这种情况,有多种方法,最简单的方法是:
1.用"记事本"创建a.txt文件,保存在一个文件夹中,设保存在d:\之下
2.编写程序,并运行
#include <stdio.h>
int main( )
{
int a[10][4]; /*假定不超过10行,每行一定有4个元素*/
int i,j;
FILE *fp;
/*打开文件*/
fp=fopen("d:\\a.txt","r"); /*假设a.txt在d盘根目录下*/
if(!fp)exit(0);
for(j=0;j<4;j++) /*假定有j行*/
for(i=0;i<4;i++)
fscanf(fp,"%d",&a[j][i]); /*读一个数据*/
/* 关闭文件 */
fclose(fp);
/*显示运行结果*/
for(j=0;j<4;j++) /*假定有j行*/
{for(i=0;i<4;i++)
printf("%4d",a[j][i]);
printf("\n");
}
return 0;
}
以上演示了文本文件的读写操作,供你参考.
在读写文件时,文件内部有一个"指针"会悄悄地变化(但你看不到),所以读一个数据后,再读可以得到下一个数据.
展开全部
用C语言从txt文件中读取数据,可以使用C标准库文件自带的文件接口函数进行操作。
一、打开文件:
FILE
*fopen(const
char
*filename,
const
char
*mode);
因为txt文件为文本文件,
所以打开时选择的mode应为"r"或者"rt"。
二、读取文件:
读取文件应根据文件内容的格式,以及程序要求,选择读取文件的函数。可以使用一种,也可以几种混用。
常用的文件读取函数如下:
1、fgetc,
从文件中读取一个字节并返回。
适用于逐个字节读取。
2、
fgets,
从文件中读取一行。适用于整行读取。
3、fscanf,
格式化读取文件,
在已经清楚文件存储格式下,可以直接用fscanf把文件数据读取到对应类型的变量中。
4、fread,
整块读取文件,
对于txt文件比较少用。
三、关闭文件:
读取结束后,应调用fclose函数关闭文件。
一、打开文件:
FILE
*fopen(const
char
*filename,
const
char
*mode);
因为txt文件为文本文件,
所以打开时选择的mode应为"r"或者"rt"。
二、读取文件:
读取文件应根据文件内容的格式,以及程序要求,选择读取文件的函数。可以使用一种,也可以几种混用。
常用的文件读取函数如下:
1、fgetc,
从文件中读取一个字节并返回。
适用于逐个字节读取。
2、
fgets,
从文件中读取一行。适用于整行读取。
3、fscanf,
格式化读取文件,
在已经清楚文件存储格式下,可以直接用fscanf把文件数据读取到对应类型的变量中。
4、fread,
整块读取文件,
对于txt文件比较少用。
三、关闭文件:
读取结束后,应调用fclose函数关闭文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
FILE *fp=NULL;
int a[160];
int i=0;
fp=fopen("data.txt","r");
if ( !fp )
{
printf("open file error\n");
return -1;
}
while( !feof(fp) )
{
if ( fscanf( fp , "%d" ,&a[i] ) !=1 )
break ;
i++;
fgetc(fp) ;//过滤掉分隔符
}
fclose(fp);
//以下倒序输出数据
printf("i=%d\n" , i );
while( --i >= 0 )
{
printf("%d," , a[i] );
if ( i %10 == 0 )
printf("\n") ;
}
return 0;
}
int main()
{
FILE *fp=NULL;
int a[160];
int i=0;
fp=fopen("data.txt","r");
if ( !fp )
{
printf("open file error\n");
return -1;
}
while( !feof(fp) )
{
if ( fscanf( fp , "%d" ,&a[i] ) !=1 )
break ;
i++;
fgetc(fp) ;//过滤掉分隔符
}
fclose(fp);
//以下倒序输出数据
printf("i=%d\n" , i );
while( --i >= 0 )
{
printf("%d," , a[i] );
if ( i %10 == 0 )
printf("\n") ;
}
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
void main()
{
FILE *fp;
fp=fopen("e:\\shao.txt","r");
int num,i=0,j;
int data[300];
while (!feof(fp))
{
fscanf(fp,"%d,",&num);
data[i++]=num;
}
for (j=0;j<i;j++)
{
printf("%d ",data[j]);
}
}
void main()
{
FILE *fp;
fp=fopen("e:\\shao.txt","r");
int num,i=0,j;
int data[300];
while (!feof(fp))
{
fscanf(fp,"%d,",&num);
data[i++]=num;
}
for (j=0;j<i;j++)
{
printf("%d ",data[j]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入重定向 参考一下书吧
追问
=。=关键是我这儿没书。。。不然也不会来求了。。。用fread行么? 那个逗号到底怎么处理啊。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询