其实主要的思路就是每次调用fgets,文件指针都会跳到下一行。

自己写的代码

#include

#include

#define Line 1024

int main()

{

//读取多行文件,存多行文件

FILE *fp;

char filename[20];

printf("Please enter the file name\n");

gets(filename);

fp = fopen(filename,"r");

if(fp==NULL)

{

printf("File Open Error");

return 4;

}

char *buf;

buf = (char *)malloc(Line*sizeof(char));

char *p;

while(p = fgets(buf,Line,fp))

{

printf("%s",p);

//原来用puts,它还给你多打了一个换行符

}

free(buf);

fclose(fp);

return 0;

}

下面是抄别人的代码

#include

#include

#define line 1024

//fgets函数的返回值为指针,指向读进来的东西,如果读到没有了,就是0000000

char * readdata(FILE *fp, char *buf)

{

return fgets(buf,line, fp);//读取一行到buf         line 的默认值为1k

}

void someprocess(char *buf)

{

printf("%s", buf);//这里的操作你自己定义

}

void main()

{

FILE *fp;

char *buf, filename[20], *p;

printf("input file name:");

gets(filename);

if ((fp=fopen(filename, "r"))==NULL)

{

printf("open file error!!\n");

return;

}

buf=(char*)malloc(line*sizeof(char));     // buf用来存放读进来的字符串

while(1)

{

p=readdata(fp, buf);//每次调用文件指针fp会自动后移一行 readdata是一个函数

if(!p)//文件读取结束则跳出循环

break;

someprocess(buf);

}

free(buf);    //应该释放空间

}

摘自:http://c.chinaitlab.com/ccjq/802437.html

c语言循环中怎样读取多行,c++循环读取多行文本文件相关推荐

  1. 为什么单独循环中的元素加法比组合循环中的要快得多?

    假设<code>a1 , b1 , c1和d1指向堆内存,而我的数字代码具有以下核心循环. const int n = 100000;for (int j = 0; j < n; j ...

  2. vue 父循环怎么拿子循环中的值_Vue 父组件循环使用refs调用子组件方法出现undefined的问题...

    Vue 父组件循环使用refs调用子组件方法出现undefined的问题 1. 背景 最近前端项目遇到一个问题,我在父组件中使用了两个相同的子组件child,分别设置ref为add和update.其中 ...

  3. 【笔记】python的while循环简介:使用while循环、让用户选择何时退出、使用标志、使用break退出循环、在循环中使用continue、避免无限循环

    文章目录 一.while循环简介 二.使用while循环 三.让用户选择何时退出 四.使用标志 五.使用break退出循环 六.在循环中使用continue 七.避免无限循环 一.while循环简介 ...

  4. matlab在循环中保存jpg格式_Matlab如何循环读取文件

    循环读取图片第一种方法①List =dir('*.jpg'); %如需其它图片格式支持,可以自己[重载dir()]函数,实现查找所有图片文件的功能, %如果图片是其它路径,可以用 ["路径& ...

  5. python如何在循环中保存文件_python-如何在for循环中更改为另一行文件

    我有一个ifs和elses(不写)长函数,而whatnot包含一个for循环,用于在文件的每一行中查找: def check(low,high): with open('users.txt', 'r+ ...

  6. for循环中抛出异常_不要抛出循环!

    到目前为止,在本系列文章中,我一直专注于Scala对Java生态系统的忠诚度,向您展示Scala如何整合Java的大部分核心对象功能. 但是,如果Scala只是编写对象的另一种方式,那么它就不会像它那 ...

  7. c语言for循环加法,BigDecimal 在for循环中相加注意事项

    public static void main(String[] args) { BigDecimal bigDecimal = new BigDecimal(1); for (int i = 0; ...

  8. c语言break语句作用范围,C语言程序设计中break语句分析

    摘 要: 在C语言程序设计课程中,break语句有两个作用:一是应用于switch语句中,可以结束多分支选择结构:二是应用于循环结构中,可以结束本层循环.通过实例分析出break语句使用的条件,bre ...

  9. C语言之顺序结构、选择结构和循环结构(break和continue的不同作用)

    所有语言的结构总共有三种,分别是顺序结构.选择结构和循环结构,C语言也不例外. 一.顺序结构 所谓顺序结构就是按照语句的书写顺序,一步一步运行. //例题:#include <stdio.h&g ...

  10. 基于中间代码的优化中,循环的查找算法有哪些?循环优化的方法有哪些?举例说明。

    基于中间代码的优化中,循环的查找算法有哪些?循环优化的方法有哪些?举例说明. 基于中间代码的优化中,循环的查找算法有哪些?循环优化的方法有哪些?举例说明. 西北工业大学编译原理课件第八章 代码优化.p ...

最新文章

  1. 搭建php帮助中心,帮助中心
  2. Tensorflow Day18 Convolutional Autoencoder
  3. 初学java小白的疑惑梳理
  4. Java流(Stream)、文件(File)相关功能 ——菜鸟教程
  5. 新萝卜家园 GhostXP SP3 一键极速装机版 2012.05
  6. Matlab排序函数
  7. Oracle StorageTek磁带库产品线或将终结
  8. Docker 容器中添加字体
  9. 【小白学习之路】Java实现简单的飞机大战小游戏
  10. matlab上机作业,matlab上机作业(数字信号处理)
  11. Linux v4l2 一 应用层
  12. 【学习小结】树上的概率、期望问题,树上高斯消元
  13. tipask 3.5 出错get_class() expects parameter 1 to be object 解决方案及说明
  14. 2020年全年财报稳健高增长,除了赛道利好之外微盟是如何做到的?
  15. 使用jquery.wordexport.js导出word文档 设置行间距不生效问题
  16. insmod等模块命令
  17. CAD图纸如何批量转换JPG格式?
  18. 苹果这一次太强硬!如果你的 App 拒绝支持这些技术,将在2020年4月30日后全面下架!...
  19. 1Tb 硬盘重做系统无法启动修复
  20. 计算机英语的职业,职业计算机英语教育思索

热门文章

  1. linux装回win10系统无法开机,Win10/Linux双系统删除之后出现grub无法开机修复方法...
  2. 计算机毕业生怎么参加清华暑校,上完清华暑校后,怎么才能进清华?
  3. 近年来机器人主流抓取估计方法总结
  4. redis进行对比时有对应的key却还是返回false
  5. 微信小程序navigateBack返回数据
  6. uboot网口调试Marvell phy 88E1111
  7. Linux命令--tac(倒序查看文件所有内容)
  8. html显示fps,Three.js - 使用stats.js库显示帧数(以及画面渲染时间)
  9. 证券交易所--本方最优对手方最优的区别
  10. 笔记本电脑禁用集显会变卡?