C语言使用技巧(三十二):读写txt文件指定行指定所有行类型数据

news/2024/12/29 10:01:04/

实现demo代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>char* ReadSpeacialLine(int i)  
{  FILE *fp;  int size = 0;  char *ar ;  int num = 40;int WhichLine=i;             //指定要读取哪一行int CurrentIndex=0;             //当前读取的行char StrLine[num];             //每行最大读取的字符数//二进制方式打开文件  char filename[] = "./lining.txt";if((fp = fopen(filename,"rb")) == NULL)  {  printf("Error:Open input.c file fail!\n");  return NULL;  }  //求得文件的大小  fseek(fp, 0, SEEK_END);  size = ftell(fp);  printf("文件的大小size------>:%d\n",size);rewind(fp);  //申请一块能装下整个文件的空间  ar = (char*)malloc(sizeof(char)*size);  //读文件  控制读取的流// fread(ar,2,10,fp);//把fp里面的值读到ar里面,每次读一个,共读10// printf("%s\n",ar);  while (!feof(fp)){if (CurrentIndex==WhichLine){fgets(StrLine,num,fp);  //读取一行printf("StrLine这里读取指定行------->%s\n", StrLine); //输出return StrLine;}fgets(StrLine,num,fp);  //读取一行,并定位到下一行CurrentIndex++;printf("这里显示读取所有前面行StrLine----->%s\n", StrLine); //输出}fclose(fp);  free(ar);  // printf("按任意键继续");  // getchar();  // getchar();  return NULL;
}  int main(){// char *p;// p=ReadSpeacialLine(4); ReadSpeacialLine(10) ;return 0;
}

执行结果:

gcc freads.c -o freads && ./freads
freads.c: In function ‘ReadSpeacialLine’:
freads.c:48:21: warning: function returns address of local variable [-Wreturn-local-addr]48 |              return StrLine;|                     ^~~~~~~
文件的大小size------>:54
这里显示读取所有前面行StrLine----->-10这里显示读取所有前面行StrLine----->13这里显示读取所有前面行StrLine----->12这里显示读取所有前面行StrLine----->23这里显示读取所有前面行StrLine----->4这里显示读取所有前面行StrLine----->35这里显示读取所有前面行StrLine----->6这里显示读取所有前面行StrLine----->70这里显示读取所有前面行StrLine----->8x这里显示读取所有前面行StrLine----->9yStrLine这里读取指定行------->10

其中的txt文件内容为:

-10
13
12
23
4
35
6
70
8x
9y
10
11m
12
133
146
15
-106

参考文献:
https://blog.csdn.net/qq_37668377/article/details/103722766
https://www.cnblogs.com/kissazi2/archive/2012/10/29/2744153.html
https://blog.csdn.net/weixin_41194129/article/details/10880631750


http://www.ppmy.cn/news/845954.html

相关文章

关于TXT转CHM的完整解决方式

为什么要转CHM? 有些书,TXT的资源非常好找,而CHM的资源非常难找(先不论PDF格式的,只是话说PDF格式的没有一个书签文件夹看起来也非常难受)而CHM格式在左側有一个文件夹结构,我最喜欢这个文件夹结构,这让我对全书有个大概的了解,做到了心中有数我是一个先整体在局部的人,因此我…

django项目 + 杀手级xadmin后台管理使用步骤和管理器类常用字段

django项目使用杀手级xadmin后台管理 环境&#xff1a; python 3.7.2 django 2.2xadmin源码网址&#xff1a;https://github.com/sshwsfc/xadmin 第一步&#xff1a;点击 下方链接 &#xff0c;有打包好的xadmin和需要的依赖包 https://pan.baidu.com/s/1ah1LI75xbVtwC2UyMe…

输入法杀手病毒

该病毒直接破坏电脑的输入法程序&#xff0c;致使无法选择和切换汉字输入法&#xff0c;严重影响用户正常的文字办公。电脑感染该病毒后&#xff0c;除输入法遭到破坏&#xff0c;病毒还假借“输入法”之名&#xff0c;随计算机自动启动&#xff0c;然后自动连接网络&#xff0…

9款杀手级超牛框架/库,第5款最令我惊艳!

Python是一门简洁、优美且强大的编程语言&#xff0c;它的强大&#xff0c;很大一部分原因来自于丰富的第三方工具包。 ​通过这些第三方工具包&#xff0c;它可以轻松应对机器学习、数据分析、前端、后端等不同种类的需求和工具&#xff0c;这使得它的应用范围几乎覆盖了当前各…

SpringBoot杀手锏-自动化配置原理

1.前言 不论在工作中&#xff0c;亦或是求职面试&#xff0c;Spring Boot已经成为我们必知必会的技能项。除了某些老旧的政府项目或金融项目持有观望态度外&#xff0c;如今的各行各业都在飞速的拥抱这个已经不是很新的Spring启动框架。 当然&#xff0c;作为Spring Boot的精髓…

完美解决requirements.txt无法使用的问题

生成requirement.txt文件 pip freeze > requirement.txt查看requirement.txt type requiremenr.txt批量执行requirement.txt pip install -r requirement.txt但是&#xff0c;如果以上的操作的环境混用怎么办&#xff1f; 在导出依赖到 requirement.txt 文件时会有一种…

Python面试题杀手锏(二)

文章目录 面试题1要求思路代码 面试题2题型&#xff1a;文件操作问题思路 面试题3问题思路 面试题1 打印1到最大的n位数 要求 输入n&#xff0c;打印出从1到最大的n位数 思路 Python中已经对大整数可以进行自动转换了&#xff0c;所以不需要考虑大整数溢出问题 代码 def…

牛腩自制TXT文本分割工具

以前在博客园中看到某位朋友也发过一个分割工具的&#xff0c;不过那时自己不需要&#xff0c;也就没有收藏&#xff0c;今天自己需要把一个大的TXT文本文件分割成多份了&#xff0c;可又找不着那篇文章了&#xff0c;只好自己做了个简单的&#xff0c;效果如图&#xff1a; […