二级指针读取文件(显示行数、读取、释放内存)
1.读取的文件
test.txt
2.c代码
duQu01.c
#include <stdlib.h>
#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS int getFileLine(FILE *file)//文件有几行
{if (file == NULL){printf("Read failed!");return -1;}int num = 0;//读取的文件存入bufchar buf[1024] = { 0 };while (fgets(buf, 1024, file)!=NULL){num++;//printf("%s", buf);}//指针移到末尾,需要将文件光标置为文件首fseek(file, 0, 0);printf("文件有几行:%d\n", num);return num;/*int fseek( FILE *stream, long offset, int origin );第一个参数stream为文件指针第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SETSEEK_SET: 文件开头SEEK_CUR: 当前位置SEEK_END: 文件结尾其中SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2.*/
}
readFileData(FILE *file,int len,char **pArray)
{if (file == NULL){//printf("Read failed!");return -1;}if (len <= 0){printf("长度小于0");}if (pArray == NULL){return -1;}//读取的文件存入bufchar buf[1024] = { 0 };int index = 0;while (fgets(buf, 1024, file) != NULL){//计算第1行有多少字节,加上\0int currentlen = strlen(buf) + 1;//开辟该行空间char *cp = malloc(sizeof(char)*currentlen);//复制到cpstrcpy(cp, buf);//将数据拷贝到堆区内存中pArray[index++] = cp;//释放缓冲区memset(buf, 0, 1024);}
}//显示数据
show(char **pArray, int len)
{for (int i = 0; i < len; i++){printf("第%d行是:%s",i+1,pArray[i]);}
}//释放内存
freeSpace(char **pArray, int len)
{//先释放小的for (int i = 0; i < len; i++){if (pArray[i] != NULL){free(pArray[i]);pArray[i] = NULL;}}free(pArray);pArray = NULL;
}void test01()//测试函数
{//读取文件FILE *file = NULL;file=fopen("./test.txt", "r");if (file == NULL){printf("Read failed!");//return 0;}//文件有几行int len = getFileLine(file);//堆区开辟len个char*空间,二级指针char **pArray = malloc(sizeof(char*)*len);//读取文件数据,存入pArrayreadFileData(file, len, pArray);//显示数据show(pArray, len);//释放内存freeSpace(pArray, len);pArray = NULL;//防止野指针
}int main()
{test01();system("pause");return 0;
}
3.结果显示
二级指针读取文件(显示行数、读取、释放内存)相关推荐
- python如何读取文件指定行_Python读取文件、大文件和指定行内容的几种方法
在使用python处理文本的时候,经常会需要读取文件的内容.如果文件比较小,那么直接使用open文件对象打开文件,再通过read()方法最为方便,这种方法就是把文件内容读出来后放到内存变量. read ...
- java 获得文件的行数据_Java 读取文件指定行数据
public class ReadFileDemo1 { /** * 获取错误文件中的记录号 * @param sourceFile * @return */ public static int[] ...
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
转自:http://hi.baidu.com/ctralt/blog/item/cde79fec87f841302697911c.html fstream提供了三个类,用来实现c++对文件的操作.(文 ...
- python怎么读取txt文件并统计其字数-python计算文件的行数和读取某一行内容的实现方法...
一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了: count = len(o ...
- python读取文件某一行-python计算文件的行数和读取某一行内容的实现方法
一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了: count = len(o ...
- python读取某一行-python计算文件的行数和读取某一行内容的实现方法
一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了: count = len(o ...
- python读取txt文件的行数_python读取txt文件符合条件的行数-女性时尚流行美容健康娱乐mv-ida网...
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python 关系网图 pyth ...
- java读取csv文件的行数_JMeter 读取 CSV 文件数据行数
在用 JMeter 做测试时,经常需要调用外部 CSV 文件的数据到脚本中使用,如果我们想对 CSV 文件中数据的行数进行统计,这个怎么做呢? 针对上面表格的数据,我们一起来学习一下如何统计数据行数吧 ...
- [Perl系列二-实战] 1. Perl 读取代码的行数
前言 有的时候有这些需求: 1. 统计一个文件的行数 2. 统计一个源代码的有效行数.排除空行和注释行 3. 统一一个目录下各种文件的数量和行数 要达成这些需求,很多语言多可以做到, 但是使用Perl ...
- 三种方法Python读取文件指定行,来看看你用过没?
1.行遍历实现 在python中如果要将一个文件完全加载到内存中, 通过file.readlines()即可, 但是在文件占用较高时, 我们是无法完整的将文件加载到内存中的, 这时候就需要用到pyth ...
最新文章
- Android之ListView原理学习与优化总结
- 使用代码获得ABAP software component的version
- java 上传 进度,关于 javaweb的文件上传实时显示进度
- 广西河池计算机考试考什么,2021上半年广西壮族自治区河池市计算机等级考试时间...
- batch、epoch、iteration的区别
- 杂记 - 进化成更好的人
- solve mass matrix in matlab
- 【多媒体封装格式详解】---MKV【3】完
- 华为荣耀7i刷linux,华为荣耀7i卡刷教程_荣耀7i用第三方recovery刷机教程
- WinKawaks + 拳皇97 ROM 包在 PC 搭建拳皇97
- CodeSmith注册错误的解决方法
- React脚手架创建项目
- exploit计算机术语,exploit
- 品今第一届集团迎新分享会,进•无止境
- 任务管理器显示命令行
- 微信 Windows 版本干了件大事!
- 荣耀笔记本开机黑屏错误怎么U盘重装系统教学分享
- TIDB集群搭建-流水线
- 绿色荧光标记麦胚凝集素(FITC-WGA)
- python实现奇异值分解_SVD(奇异值分解)Python实现
热门文章
- python系统监控_python psutil系统监控详解
- php 处理对象用什么,程序处理的对象是什么
- oppoa9处理器怎么样_oppoA9究竟怎么样?看看与三星A60元气版的对比吧
- layui和jquery冲突:Syntax error, unrecognized expression: +
- error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug...
- eclipse上配置Maven
- C#读取Excel 2003/2007的文件(注意连接字符串)
- [转]Linux环境下段错误的产生原因及调试方法小结
- 如何理解Library List
- 华工软院17级“软件需求分析”课程大作业