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,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.用"记事本"创建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;

}

以上演示了文本文件的读写操作,供你参考.

在读写文件时,文件内部有一个"指针"会悄悄地变化(但你看不到),所以读一个数据后,再读可以得到下一个数据.

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-01-17
用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函数关闭文件。
第2个回答  推荐于2018-02-21
#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;
}本回答被提问者和网友采纳
第3个回答  2012-09-22
#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]);
}
}
第4个回答  2012-09-22
输入重定向 参考一下书吧追问

=。=关键是我这儿没书。。。不然也不会来求了。。。用fread行么? 那个逗号到底怎么处理啊。。。

相似回答