C语言读取文件内容,保存到数组里面

您所在的位置:网站首页 c语言用fscanf文件读取结构体 C语言读取文件内容,保存到数组里面

C语言读取文件内容,保存到数组里面

2023-07-17 07:41| 来源: 网络整理| 查看: 265

前言

本文分为两部分,其中一部分主要使用C语言编程实现读取文件内容(要打开的文件名称采用命令行方式输入),统计文件内容的行数,并将文件内容保存到数组里面打印输出。 另一部分使用C语言编程实现读取文件内容(要打开的文件名称采用命令行方式输入),统计文件内容的行数,保存文件内容的数组采用动态分配内存的方式,这样不管文件大小,都可以进行文件内容读取保存。同时还可将读取的文件内容使用fprintf函数保存到另一个文件中。

第一部分

对保存文件内容的数组分配200个int型长度的内存。 主要使用c语言从命令行输入文件,读入文件,统计行数,并将文件内容保存到数组里面。

程序 #include #include #include #include int main(int argc,char* argv[]) //命令行传参,argc代表传入参数个数,argv表示传入的参数 { int i,j; int k=0; int count=0; //统计文件中字符个数 int sum_row; //统计文件中字符个数 int flag=0; FILE *fp; //文件指针 FILE *fp1; int a_in[200]; //保存文件内容的数组 int b_in[200]; //保存文件内容的数组 fp=fopen(argv[1],"r"); //打开文件,只读 //fp1=fopen("int_data.txt","r"); fp1=fopen(argv[1],"r"); if(fp==NULL) { printf("File cannot open! " ); //exit; return 0; } if(argc!=2) //判断输入参数个数,如果不为2个就报错 { printf("参数个数错误"); return -1; } while(!feof(fp)) //读文件,直到文件末尾 { flag = fgetc(fp); //将文件内容附给flag if(flag == '\n') //如果为\n表示到行尾,便进行计数 count++; } sum_row = count+1; //加上文件最后一行,即为文件总的行数 printf("文件行数为:%d",sum_row); //打印文件行数,因为每行只有一个数,所以即统计文件中有多少个数 printf("\n"); for(i=0;i fscanf(fp1,"%d",&a_in[j]); //将文件其中一行内容保存到数组中 b_in[k]=a_in[j]; //将读到的每一行的数据都保存到b_in数组中 k++; //行数加一 } } printf("文件内容为:\n"); for (i=0;i int i,j; int k=0; int count=0; //统计文件中字符个数 int sum_row; //统计文件中字符个数 int flag=0; //用于暂时将文件内容保存 FILE *fp; //文件指针 FILE *fp1; FILE *fp2; int *a_in; //用于读文件中的数据 int *b_in; //用于保存从文件中读入的数据 fp=fopen(argv[1],"r"); //打开文件,只读,argv[1]代表从命令行输入的文件名称,即运行.exe程序时输入的第二个参数 fp1=fopen(argv[1],"r"); //再次打开文件,(第一次打开文件用于统计文件的行数,即数据的个数)用于将文件内容保存到指针数组里 fp2=fopen("test1.txt","w"); //打开文件,只写,用于将数组内容重新保存到另一个文件中 if(fp==NULL) //打开文件失败 { printf("File cannot open! "); //exit; return 0; } if(argc!=2) //判断输入参数个数,如果不为2个就报错 { printf("参数个数错误"); return -1; } while(!feof(fp)) //读文件,直到文件末尾 { flag = fgetc(fp); //将文件内容附给flag if(flag == '\n') //如果为\n表示到行尾,便进行计数 { count++; //统计文件行数 } } sum_row = count+1; //加上文件最后一行,即为文件总的行数 printf("文件行数为:%d",sum_row); //统计文件行数,因为每行只有一个数,所以即统计文件中有多少个数 printf("\n"); a_in = (int*)malloc(sizeof(int)*200); //动态分配用于保存文件内容的指针数组长度,以免溢出 b_in = (int*)malloc(sizeof(int)*200); //动态分配用于保存文件内容的指针数组长度,以免溢出 if (!a_in) //动态内存分配失败 { printf("内存分配失败"); return-1; } if (!b_in) //动态内存分配失败 { printf("内存分配失败"); return-1; } for(i=0;i fscanf(fp1,"%d",&a_in[j]); //将文件其中一行内容保存到指针数组中 b_in[k]=a_in[j]; //将读到的每一行的数据都保存到b_in指针数组中 k++; //行数加一 } } printf("文件内容为:\n"); for (i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3