c语言把txt文件中一列很长数据存放到一个一维数组中

文件中的数据是一列有544933个小数的数据

通过fscanf,循环读取到文件尾即可。

一、算法设计:

1、打开文件;

2、根据文件中的数据类型,使用fscanf读取数据,存到数组中;

3、当读取到文件尾时,退出循环;

4、关闭文件;

5、输出结果。

二、参考代码:

以文件中存的为整型为例:

#include <stdio.h>
int a[1000];
int main()
{
    int i,n=0;
    FILE *fp;
    fp = fopen("in.txt", "r");//打开文件。
    while(fscanf("%d", a[n]) != EOF)//读取一直到文件尾。
        n++;//计入总数。
    fclose(fp);//关闭文件。
    for(i = 0; i < n; i ++)
        printf("%d", a[i]);//输出结果。
    return 0;
}

三、注意事项:

1、要存到数组中,所以文件中必须是相同类型的数据。

2、如果文件中存有多列,需要通过读取文件的方式去除其它列。

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言 如何读取txt文件中的数据到一个数组并跳过逗号?
(思路是,把多余的那个逗号或者换行符按%c的方式读到junk里)include <stdio.h>int main(){int a[2][4];char junk;int i,j;FILE * fp;fp=fopen("filename.txt","r");for (i=0;i<2;i++)for (j=0;j<4;j++)fscanf(fp,"%d%c",&a[i][j],&junk);fclose(fp);\/\/your co...

c语言中如何将连续的数值存入一维数组
1、看这个逻辑有问题:变量h没用,程序无法退出,输入一次就会停止;2、简化:main(){ int a,b,c[];for(i=0;i++){ scanf("%d,%d",&a,&b);if(b==0) continue;if(b==9) break;c[i]=a%b;a \/= b;} }

C语言中从.txt文件中按行读取字符串至数组中,怎么写?
可以设定文件名为in.txt, 存有一系列整型数据,以空格或换行分隔写。代码如下:include int main(){ int v[100];\/\/开一个足够大的数组。int i = 0, j;FILE *fp;\/\/文件指针 fp = fopen("in.txt", "r");\/\/以文本方式打开文件。if(fp == NULL) \/\/打开文件出错。return -1;while...

...行里的“\/\/”后面内容,然后保存在一个一维数组里
include <stdio.h>int main(int argc,char *argv[]){ char a[30000]; int i; FILE *fp; if((fp=fopen("1.txt","r"))==NULL){ printf("Open the file failure...\\n"); return 0; } a[i=0]='\\n',i++;while((a[i]=fgetc(fp))!=EOF){if(a[...

...的方式把一个二维数组的元素存入一个一维数组中,并输出?
int main(){ \/\/这是一个二维数组 int arr[2][3] = { {1,2,3},{4,5,6} };\/\/获取数组的尺寸和行列数:int len = sizeof(arr) \/ sizeof(arr[0][0]);int row = sizeof(arr) \/ sizeof(arr[0]);int column = len \/ row;\/\/知道了长度就可以使用calloc创建一个给定长度的...

C语言中,如何把一些变量存进一维数组里?求解~
定义数组时,数组的每一个元素就是一个变量,比如定义一个一维的整型数组int a[3];那么他的三个元素a[0],a[1],a[2]就都可视为整型变量

VC把一个txt分行输入到内存,哪边错了?
((t+i)*100+j)全部改为 (*(t+i)+j)或者改为简单的下标法引用 t[i][j]因为二维数组的存储方式不是你想的那样的 *((t+i)*100+j) 等于 t[10000]一维数组?二维数组temp[100][100]中temp[100]存了100个不相连的地址,每一个是一个长度为100的数组的基址 ...

C语言怎样将产生的随机数放入一维数组中
include <stdio.h>#include "stdlib.h"#include "time.h"int main(int argc,char *argv[]){ int a[100],i; srand((unsigned)time(NULL)); for(i=0;i<100;a[i++]=rand()); return 0;}

...一维动态数组,读取txt中的1列数据,读完的数据个数就是数组的长度,详...
include<stdio.h> void main(){ int a=0,*c;c=fopen("路径\\*.txt");a=fgets(*c);printf(a);fclose();} 相当长时间没有使用语言了。都忘记了。我机器上没有语言软件。没有办法调试一下。你自己能看懂意思。自己试着调试吧。自己动手,才能学到自己的。

C语言中如何把二维数组按列用一维数组输出来
按列遍历,并输出到一维数组即可.void covert(int a[M][N], b[M*N]){ int i,j,n; for(i = n = 0; i < N; i++) { for(j = 0; j < M; j ++) { b[n++] = a[j][i]; } }}

相似回答