c语言 如何读取txt内容到数组

比如我有一个txt文件:1.txt里面存着12345678910....这些数字以空格隔开,并且假设不知道一共有多少个数,请问如何用C语言打开文件,并且将数存到数组里?... 比如我有一个txt文件:1.txt
里面存着1 2 3 4 5 6 7 8 9 10....
这些数字以空格隔开,并且假设不知道一共有多少个数,

请问如何用C语言打开文件,并且将数存到数组里?
展开
 我来答
小黑哎啊
科技发烧友

2020-06-06 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:1642
采纳率:74%
帮助的人:351万
展开全部

#include<stdio.h>

#include<stdlib.h>

#define N 10000

int main()

{

FILE *fp;

if((fp=fopen("D:\\123.txt","r"))==NULL)//判断文件是否打开成功 

{//读取D盘下,名为123的文本文件 

printf("文件打开失败\n");

exit(0);

}

else

printf("文件打开成功\n");

double a[N];

for(int i=0;i<5;i++)//读取五个浮点型数据

fscanf(fp,"%lf,",&a[i]);//fscanf函数固定格式读察团茄取文本中的数或册据; 

for(int i=0;i<5;i++)

printf("%.6lf,\n",a[i]);

fclose(fp);

 败察} 

tattackor
推荐于2016-04-26 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:875万
展开全部

一、编程思路。
1 以文本方式打开文件。
2 循环用fscanf格式化输入数据到数组。
3 判断fscanf的返回值,如果显示到达文件结尾,退出输入。
4 关闭文件。
5 使用数答粗据。

二、代码实现。
设定文件名为in.txt, 存有一系列整型猜举岁数据,以空格或换行分隔。
代码可以写作:

#include <stdio.h>
int main()
{
    int v[100];//开一个足够大的数组。
    int i = 0, j;
    FILE *fp;//文件指针
    fp = fopen("in.txt", "r");//以文本方式打开文件。穗睁
    if(fp == NULL) //打开文件出错。
        return -1;
    while(fscanf(fp, "%d", &v[i]) != EOF) //读取数据到数组,直到文件结尾(返回EOF)
        i++;
    fclose(fp);//关闭文件
    for(j = 0; j < i; j ++)//循环输出数组元素。
    {
        printf("%d ", v[j]);
    }
    return 0;
}

当文件内容为:
1 35 6 8 9 9
10 123 34
76 54 98
程序输出:
1 35 6 8 9 9 10 123 34 76 54 98

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-11-26
展开全部
采用事先分配一个大庆衫数组的盯脊方式不能确保不越誉则腔界,并不是理想的方案。应该在读取的过程中动态分配数组:

//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
FILE *fp=fopen("c:\\1.txt","r");
int i,*a=NULL;
for (i = 0; !feof(fp); i++) {
a=(int *)(a?realloc(a,sizeof(int)*(i+1)):malloc(sizeof(int)));
fscanf(fp,"%d",a+i);
printf("%d\t",a[i]);
}
fclose(fp);
free(a);
return 0;
}
//---------------------------------------------------------------------------
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cgiggle
推荐于2017-11-22 · TA获得超过1957个赞
知道大有可为答主
回答量:1996
采纳率:0%
帮助的人:1257万
展开全部
#include<stdio.h>
main()
{
int a[100];
int i;
FILE *fp;
fp=fopen("c:\\fun.txt","r");
for(i=0;!feop(fp);i++)
fscanf(fp,"%d",&a[i]);
fclose(fp);
}
//文件目录自行修改敬配银下亮宴即可了 祝你成卖橘功
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ubai
2009-11-26 · TA获得超过481个赞
知道小有建树答主
回答量:583
采纳率:50%
帮助的人:290万
展开全部
顶楼的 简单 正解~

就是有个 错别字,feof(fp)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式