【C语言】C语言读取文本文件

您所在的位置:网站首页 c语言读取txt文件数据函数 【C语言】C语言读取文本文件

【C语言】C语言读取文本文件

2023-12-29 14:07| 来源: 网络整理| 查看: 265

文章目录 【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