C语言一行一行读取文件

2023-11-13

C语言中,使用fgets函数可以一行行读du取文件。

1、fgets函数:

原型:char * fgets(char * buf, int bufsize, FILE * stream);

功能:从文件结构体指针stream中读取数据,每次读取一行。

说明:读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋值为\0)。如果该行不足bufsize个字符,则读完该行就结束,如果该行超过bufsize-1个字符,则fgets只返回一个不完整的行,buf缓冲区以\0字符结束,下一次fgets调用会继续读取该行剩余的字符;

头文件:stdio.h;

返回值:若读入成功,返回与参数buf相同的字符指针,若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。

2、例程:

#include<stdio.h>
int a;
char b,c[100];
int main(){
    FILE * fp1 = fopen("input.txt", "r");//打开输入文件
    FILE * fp2 = fopen("output.txt", "w");//打开输出文件
    if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
        puts("不能打开文件!");
        return 0;
    }
    fscanf(fp1,"%d",&a);//从输入文件读取一个整数
    b=fgetc(fp1);//从输入文件读取一个字符
    fgets(c,100,fp1);//从输入文件读取一行字符串
     
    printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
     
    fputs(c,fp2);//向输出文件写入一行字符串
    fputc(b,fp2);//向输出文件写入一个字符
    fprintf(fp2,"%d",a);//向输出文件写入一个整数
     
    fclose(fp1);//关闭输入文件
    fclose(fp2);//关闭输出文件,相当于保存
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言一行一行读取文件 的相关文章

  • AcWing 894. 拆分-Nim游戏 (博弈论)

    题目 数论章节中的最后一题 也是博弈论的最后一节 堆ai拆分成b1 b2后 一个重要的性质就是sg b1 b2 sg b1 sg b2 import java io BufferedReader import java io IOExcep
  • 工业软件系列之仿真篇:正向研发的加速器

    已剪辑自 https mp weixin qq com s 0VVwg08JH PZhKpvcoRYTA 仿真是通过模型来模拟现实系统中发生的过程 其本质是将物理化学公式模型进行代码化表示 并借助计算机实现计算求解 仿真在离散制造和流程制造

随机推荐

  • 解决linux git已生成配置密钥出现Permission denied (publickey).问题

    前言 在我使用linux的git时 配置的ssh密钥 并且添加进的github 但是在执行git clone 时仍然出现Permission denied publickey 的问题 经过多次的尝试 发现的解决问题的方法 方法 这个问题的原
  • 你知道DashO Pro/Dotfuscator有效保护应用的秘诀吗?看了这篇你就明白了

    Gartner在其2019年7月应用内保护应用内保护市场指南中将应用内保护称为 关键 该指南的摘要建议安全和风险管理负责人 在保护其应用程序客户端时应格外小心 以避免 安全性失败 这就提出了一个问题 什么构成 应有的注意 尽管术语和术语可能
  • Person类

    题目 设计一个 Person 类 成员包括 姓名 性别 年龄 需要实现的功能 成员函数 输入 输出 修改成员 根据有关信息初始化对象 main 函数先输出把对象初始化为缺省值的结果 再输出修改各成员的结果 再输出经输入函数修改各成员的结果
  • origin如何绘制双y轴曲线_如何通过紫外可见漫反射光谱计算带隙/禁带宽度(方法2.tauc plot法)...

    微信公众号试行乱序推送 为了不错过更新 请点击本页面最上方的 结构分析表征 进入公众号主页 点击右上角的三个小点点 在弹出的界面点击 设为星标 并在看完图文或视频后点击右下角的 在看 和 赞 本公众号以各类仪器的测试 分析教程 欢迎关注同名
  • 《机器学习》又名西瓜书个人笔记

    周志华老师写在第十次印刷之际 这是一本教科书 这是一本入门教科书 这是一本面向理工科高年级本科生和研究生的教科书 本书适宜多读几遍 初学机器学习 容易陷入一个误区 以为熟练了 十大算法 便可以解决任何问题 于是将目光仅聚焦在具体算法推导和编
  • Vuforia 的 模型识别中 数据集 Database

    数据集 使用ObjectTracker数据集API可以选择使用的模型目标 可以从中创建和加载模型数据集 继承自DataSet ObjectTracker 加载后 可以激活数据集以供数据集使用ObjectTracker 与我们现有的功能类似
  • SQL注入详解

    一 什么是SQL注入 SQL注入是一种将SQL代码添加到输入参数中 传递到SQL服务器解析并执行的一种攻击方式 select from table where name appName 攻击者利用appName参数值的输入 来生成恶意的SQ
  • mac typora低版本出现图片不显示

    由于mac的系统版本低 安装的typora的版本也相对低 但是会遇到一些问题 尤其是遇到加载的图片 出现不显示 需要手动一个一个修改一下才能显示 如果图片较多就麻烦了 可以切换源代码模式 在源码模式下 编写一个图片的链接 可以在 和imag
  • 使用openCV查看png图片的各通道值

    png格式的图片除了能展现出各种各样的色彩外 还能表现出 透明 的特点 这是因为这种格式的图片除了含有我们常见的RGB三个颜色通道外 还有一个A通道来控制图片的透明效果 使用openCV可以方便的查看各种格式图片各个通道的值 思路如下 首先
  • windows 下的composer 可能遇到(Loading composer repositories with package information)

    最容易遇到下面这个问题 Loading composer repositories with package information Updating dependencies including require dev 在dos界面下输入
  • Unity Inputfield获得和失去焦点

    获取焦点 public InputField inputField void Start inputField ActivateInputField 失去焦点 public InputField inputField void Start
  • electron-egg: 新一代桌面应用开发框架

    当前桌面软件技术有哪些 语言 技术 优点 缺点 C wpf 专业的桌面软件技术 功能强大 学习成本高 Java swing javaFx 跨平台和语言流行 GUI库少 界面不美观 C Qt 跨平台 功能和类库丰富 学习成本高 Swift 无
  • 用Python画笑脸

    开心一下 喵 很早之前画的 放上来做个纪念吧 代码如下 from turtle import screensize 600 600 speed 10 def Arc initial degree step rotate rangeNum s
  • cmake

    ubuntu系统当库安装后 需要包含头文件一般在 usr local include 比如 include directories usr local include ImageMagick 7 这样就能调用各种功能头文件 但还要包含 so
  • 数据结构基本概念及算法分析

    文章目录 1 数据结构基本概念 1 1 基本概念和术语 1 1 1 数据 1 1 2 数据元素 1 1 3 数据项 1 1 4 数据对象 1 1 5 数据结构 1 2 逻辑结构与物理结构 1 2 1 逻辑结构 我们最需要关注的问题 1 2
  • 从在浏览器的输入框输入一个网址,到看到网页的内容,这个过程中发生了什么?

    https www cnblogs com ouyang99 p 10284271 html 从在浏览器的输入框输入一个网址 到看到网页的内容 这个过程中发生了什么 当在浏览器地址栏输入网址 如 www baidu com后浏览器是怎么把最
  • 硬件设计27之RS232

    串口通讯 串口通讯 Serial Communication 是一种设备间非常常用的串行通讯方式 因为它简单便捷 大部分电子设备都支持该通讯方式 电子工程师在调试设备时也经常使用该通讯方式输出调试信息 在计算机科学里 大部分复杂的问题都可以
  • js实现简单的视频播放

    功能1 播放暂停切换 思路 准备一个播放的图片和一个暂停的图片 利用标杆思想 设置一个flag变量 播放的时候将flag设置为false 暂停的时候设置为true 如果flag为true则播放同时改变为播放图片 为false则暂停同时改变为
  • 游游的排列构造

    示例1 输入 5 2 输出 3 1 5 2 4 示例2 输入 5 3 输出 2 1 4 3 5 include
  • C语言一行一行读取文件

    C语言中 使用fgets函数可以一行行读du取文件 1 fgets函数 原型 char fgets char buf int bufsize FILE stream 功能 从文件结构体指针stream中读取数据 每次读取一行 说明 读取的数