usb分线器充不了电:C语言文件数据读入

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 16:28:24
例如在 a.txt 中,有如下数据:

10
3 5 3 5 8 8 2 13 21

{问题一} 我想将 第一行的 10 存入 n 中,第二行开始的全部数据存入数组arr[n],也就是第一行的数据是数组arr的元素个数。在C语言中怎样写?

{问题二} 如果第一行 也是 10 存入 n中,接下来有不知道多少个数据,但要求将第二行开始的数据全部存入未定义大小的数组arr[]中,C语言如何实现?

读入文本数据最好不要用FREAD

# include <stdio.h>

int main()
{
int n,i,h,arr[n];
FILE *fin=fopen("a.txt","r");
fscanf(fin,"%d",&n);
for(i=0;i<n;i++){
fscanf(fin,"%d",&arr[i]);
return 0;
}

这是一段函数
void load()
{
FILE *fp1,*fp2;
if((fp1=fopen("a.txt","rb"))==NULL)
{printf("-_-!找不到记录文件!\n");
exit();}
if((fp2=fopen("a.txt","rb"))==NULL)
{printf("-_-!找不到记录文件!\n");
exit();}
fread(&n,sizeof(int),1,fp2);
fread(arr,sizeof(arr),n+1,fp1);
fclose(fp1);
fclose(fp2);
cout<<"文件已读取!"<<endl;
}

第二个问题在这段函数基础上改一下就行

不用那样麻烦!
#include"stdio.h"
int n,i;
int arr[100];
main()
{freopen("a.txt","r",stdin);/* r=read; stdin是输入*/
scanf("%d",&n);
for(i=1;i<=n;i++);
scanf("%d",&arr[i]);
}
/*只要用freopen语句即可,剩下的用无文件方法处理*/