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个数存到一个数组里,代码应该怎么写?文件名字随便取一个吧。
展开
 我来答
wang433
2010-05-18 · TA获得超过969个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:126万
展开全部

像这种情况,有多种方法,最简单的方法是:

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;

}

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

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

礼夏真帅光
2020-01-17 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:26%
帮助的人:906万
展开全部
用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函数关闭文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
推荐于2018-02-21 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6429万
展开全部
#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;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shaoqi08110820
2012-09-22 · TA获得超过2508个赞
知道大有可为答主
回答量:1514
采纳率:100%
帮助的人:1735万
展开全部
#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]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
周辉555
2012-09-22 · TA获得超过178个赞
知道答主
回答量:22
采纳率:0%
帮助的人:8.1万
展开全部
输入重定向 参考一下书吧
追问
=。=关键是我这儿没书。。。不然也不会来求了。。。用fread行么? 那个逗号到底怎么处理啊。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式