❶ c语言怎么把文件中数据读取并存到数组中
使用for循环语句+文件操作函数即可文件中数据读取并存到数组中。
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。
2、例程:
#include<stdio.h>
inti,a[100];
intmain(){
FILE*fp1=fopen("input.txt","r");//打开输入文件
FILE*fp2=fopen("output.txt","w");//打开输出文件
if(fp1==NULL||fp2==NULL){//若打开文件失败则退出
puts("不能打开文件!");
rturn0;
}
for(i=0;fscanf(fp1,"%d",a+i)!=EOF;i++);//从输入文件连续读取整数到数组a
for(;i--;)fscanf(fp2,"%d",a[i]);//把数组a逆序写入到输出文件当中
fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return0;
}
❷ C语言 把文件内容导入数组
#include<stdio.h>
#include<stdlib.h>
intmain(intargc,char*argv[])
{
FILE*fp;
charstrline[50];//读取文件每行的buffer
intleft[200];
floatright[200];
inti=0,j=0;
if((fp=fopen("z:\1.txt","r"))==NULL)//文件位置和文件名
{
printf("fileopenerror");
return0;
}
while(!feof(fp))//判断文件是否已到末尾
{
fgets(strline,50,fp);//读取一行
sscanf(strline,"%d%f",&left[i],&right[i]);//从文件读取到的一行数据分别存放在两个数组中
i++;
}
fclose(fp);
while(1)
{
printf(" %d%.3f",left[j],right[j]);
j++;
if(j>=i)
{
break;
}
}
return0;
}
❸ c语言读取文件然后保存到数组中
c语言读取文件然后保存到数组中的流程是:
打开文件
根据文件格式循环读取数据
将数据存入数据
重复2-3,直到文件读取完毕
关闭文件
下面是示例代码:
#include<stdio.h>
intmain()
{
ints[5][8];
intnum[]={0,6,5,6};
inti,j;
FILE*fp;
if((fp=fopen("D:\test.txt","r"))==NULL)
{puts("Notest.txt");return0;}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
fscanf(fp,"%d",&s[i][j]);
}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
{
if(j==1)
printf("%c",s[i][j]);
else
printf("%d",s[i][j]);
}
puts("");
}
fclose(fp);
return0;
}
❹ c语言将文件内容读入数组中
#include<stdio.h>
intmain(intac,char*pav[])
{
if(ac!=2){
printf("程序名要读取的文件名 ");
printf("test.exe1.txt ");
return0;
}
FILE*fp=fopen(pav[1],"r+");
if(fp==0)
{
printf("failtoopenthefile1! ");
return0;
}
charbuf[256]={0};
while(!feof(fp))//判断文件是否已结束
{
fgets(buf,256,fp);
}
printf(buf);
return0;
}
❺ 请问如何使用纯C语言读取文件中的图片,并将图片存储在二维数组中
1、使用双层循环语句,就可以依次把数据顺序读入到一个二维数组当中了。2、例程:#include#include#defineMAXLINE3#defineMAXCOLUMN10voidmain(void){FILE*fp;//文件指针chararr[MAXLINE][MAXCOLUMN]={0};//定义3行10列的二维数组并初始化inti=-1;if((fp=fopen("./test/filename.txt","r"))==NULL){//打开txt文件perror("Fileopenerror!\n");return;}while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL)//读取一行并存到arr数组printf("%d:",i);//打印行号//puts(arr[i]);char*subarr=strtok(arr[i],"");//以空格为分隔符从arr[i]中获得字串while(subarr!=NULL){data[i][j]=atoi(subarr);//将字串转为int型数据存入data数组printf("%d\t",data[i][j]);//打印data[i][jsubarr=strtok(NULL,"");//继续获得arr[i]中的字串j++;//data数组列加一}printf("\n");}//循环完毕后,所有数据已在data数组中printf("\n");fclose(fp);//关闭指针}