【C语言】通过fgets和fscanf了解读写文件流的概念

在C语言中,fgetsfscanf都是用于从文件或输入流中读取数据的函数,但它们的工作方式和用途有所不同。

 

1.fgets(Get File String)

 

示例代码:

char buffer[100];
fgets(buffer, sizeof(buffer), stdin);

 

  • fgets 函数用于从文件或输入流中读取一行数据,并将其存储到一个字符串中。

  • 它会读取最多n-1个字符,并将它们存储在s指向的字符数组中,然后自动添加一个空字符'\0'作为字符串的结束符。

  • 如果遇到换行符'\n'fgets会停止读取并存储换行符;如果未遇到换行符,它会读取到缓冲区满或遇到文件结束符EOF为止。

示例代码:

int num;
float value;
fscanf(stdin, "%d %f", &num, &value);

2.fscanf(Formatted Scan Functions):

  • fscanf 函数用于从文件或输入流中读取格式化输入。

  • 它允许你指定一个格式字符串,该格式字符串定义了期望读取的数据类型和格式。

  • fscanf 会根据格式字符串解析输入,并将其存储在提供的变量地址中。

  • fgets 读取一行数据,包括空格,直到遇到换行符或达到最大长度,适用于读取文本行。

  • fscanf 根据提供的格式字符串读取数据,可以读取不同类型的数据,包括整数、浮点数等,适用于解析格式化的输入。

  • fgets 总是将读取的数据存储为字符串,即使期望的是数字类型,也需要额外的转换。

  • fscanf 在读取时会进行类型检查和转换,如果输入数据与格式不匹配,可能会导致未定义行为或错误。

使用fgets时,需要注意手动处理换行符和结束符。而使用fscanf时,需要确保输入数据的格式与预期的格式字符串匹配,否则可能会导致读取失败或程序崩溃。

 

相关推荐

  1. C语言通过fgetsfscanf了解文件概念

    2024-07-10 22:22:02       9 阅读
  2. C语言文件

    2024-07-10 22:22:02       32 阅读
  3. c++文件

    2024-07-10 22:22:02       41 阅读
  4. C++文件

    2024-07-10 22:22:02       52 阅读
  5. 1.基于C#Dbf文件结构概述

    2024-07-10 22:22:02       39 阅读
  6. [C#]文件-1

    2024-07-10 22:22:02       40 阅读
  7. C++二进制文件

    2024-07-10 22:22:02       14 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 22:22:02       3 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 22:22:02       3 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 22:22:02       2 阅读
  4. Python语言-面向对象

    2024-07-10 22:22:02       2 阅读

热门阅读

  1. mac上修改jupyterlab工作目录

    2024-07-10 22:22:02       9 阅读
  2. mongoexport导出聚合查询的mongo数据

    2024-07-10 22:22:02       7 阅读
  3. k8s离线安装单节点elasticsearch7.x

    2024-07-10 22:22:02       9 阅读
  4. d3tree树控件,点击动态加载,默认展开三层

    2024-07-10 22:22:02       8 阅读
  5. ontape备份异机还原的样例

    2024-07-10 22:22:02       8 阅读
  6. [PaddlePaddle飞桨] PaddleSpeech语言小模型部署

    2024-07-10 22:22:02       8 阅读