【C语言】C语言读取文本文件 |
您所在的位置:网站首页 › c语言读取txt文件数据函数 › 【C语言】C语言读取文本文件 |
文章目录
【C语言】C语言读取文本文件一 前言二 按字符读取文本文件1、程序实现一2、程序实现二3、以西游记为海量文本进行测试
三、按行读取文本文件1、程序实现一2、程序实现二
四、说明
【C语言】C语言读取文本文件
一 前言
时不时牵扯到做处理文件,然后就要读取文本,每次都要重新写,这里就做一个记录,方便以后用到,就直接复制粘贴就ok。 二 按字符读取文本文件 1、程序实现一1:代码 /* 程序功能:分别按照字符,行标识读取文本文件 */ // 一、按照字符读取文本文件 #include int fileHang(FILE *fp); int main(int argc, char *argv[]) { int flag; char ch; char *f1 = argv[1]; // 后台参数 FILE *fp1 = fopen(f1, "r"); // 创建文件指针及打开文本文件 if(fp1 == NULL){ printf("文件 %s 打开时发生错误", f1); return -1; } while((ch=fgetc(fp1)) != EOF){ // putchar(ch); printf("%c",ch); } // fileHang(fp1); fclose(fp1); return 0; }2:结果 2、程序实现二1:代码 /* 程序功能:分别按照字符,行标识读取文本文件 */ // 一、按照字符读取文本文件 #include int fileHang(FILE *fp); int main(int argc, char *argv[]) { char *f1 = argv[1]; // 后台参数 FILE *fp1 = fopen(f1, "r"); // 创建文件指针及打开文本文件 if (fp1 == NULL) { printf("文件 %s 打开时发生错误", f1); return -1; } fileHang(fp1); // 调用自定义函数 fclose(fp1); // 关闭文件指针 return 0; } // 创建子函数 int fileHang(FILE *fp1) { int lines = 1; char ch; while ((ch = fgetc(fp1)) != EOF)// 读取到文件末尾或读取失败时返回 EOF { if (ch == '\n') { lines++; } // putchar(ch); printf("%c", ch); } printf("\n 一共 %d 行",lines); return 1; }2:结果 3、以西游记为海量文本进行测试1:代码 /* 程序功能:分别按照字符,行标识读取文本文件 */ // 一、按照字符读取文本文件 #include #include int fileHang(FILE *fp); int main(int argc, char *argv[]) { clock_t start,finish; double duration; char *f1 = argv[1]; // 后台参数 FILE *fp1 = fopen(f1, "r"); // 创建文件指针及打开文本文件 start = clock(); if (fp1 == NULL) { printf("文件 %s 打开时发生错误", f1); return -1; } fileHang(fp1); // 调用自定义函数 fclose(fp1); // 关闭文件指针 finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; printf("\n一共耗时 %f 秒",duration); return 0; } // 创建子函数 int fileHang(FILE *fp1) { int lines = 1; char ch; while ((ch = fgetc(fp1)) != EOF)// 读取到文件末尾或读取失败时返回 EOF { if (ch == '\n') { lines++; } // putchar(ch); printf("%c", ch); } printf("\n 一共 %d 行",lines); return 1; }2:结果 三、按行读取文本文件 1、程序实现一1:代码 /* 程序功能:分别按照字符,行标识读取文本文件 */ // 二、按照行读取文本文件 #include #include #define MAX 1024 int fileHang(FILE *fp); int main(int argc, char *argv[]) { char line[MAX]; int lines = 0; char *f1 = argv[1]; // 后台参数 FILE *fp1 = fopen(f1, "r"); // 创建文件指针及打开文本文件 if (fp1 == NULL) { printf("文件 %s 打开时发生错误", f1); exit(1); } while(fgets(line,MAX,fp1) != NULL){ // 或者,使用whie(!feof(fp1)){fgets(line,MAX,fp1)} lines++; // 统计行数 printf(line);// 打印文本 } // fileHang(fp1); // 调用自定义函数 printf("\n一共 %d 行",lines); fclose(fp1); // 关闭文件指针 return 0; }2:结果 2、程序实现二1:程序 /* 程序功能:分别按照字符,行标识读取文本文件 */ // 二、按照行读取文本文件 #include #include #define MAX 1024 int fileHang(FILE *fp); int main(int argc, char *argv[]) { char line[MAX]; int lines = 0; char *f1 = argv[1]; // 后台参数 FILE *fp1 = fopen(f1, "r"); // 创建文件指针及打开文本文件 if (fp1 == NULL) { printf("文件 %s 打开时发生错误", f1); exit(1); } fileHang(fp1); // 调用自定义函数 fclose(fp1); // 关闭文件指针 return 0; } // 创建子函数 int fileHang(FILE *fp1) { int lines = 0; char line[MAX]; while (fgets(line, MAX, fp1) != NULL) { lines++; // 统计行数 printf(line); // 打印文本 } printf("\n 一共 %d 行", lines); return 1; }2:结果 四、说明以上的程序实现一和实现二其本质上是一样的,区别就是实现二是将代码封装了起来。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |