c - 在 C 中读取文件内容,跟踪新行

标签 c scanf stdio file-pointer

我正在使用 fscanf() 从 C 语言的数据文件中读取字符串,使用一个循环直到 EOF。数据文件包含由任何空格分隔的字符串。当使用 fscanf() 读入字符串时,将检查它们是否存在任何无效信息。我需要跟踪项目所在的行号,以便在检测到无效项目时显示该项目的行号。就像我说的,数据文件不仅仅是每行一个字符串。有什么比读入新行的所有内容、将其拆分为单独的字符串并检查这些字符串更优雅的吗?我可以确定文件指针当前指向的行号吗?

最佳答案

C I/O 库中没有行号计数器。您需要自己跟踪行号。

我建议您使用 fgets 一次读取一行,每次增加行号计数器,然后使用 sscanf 从该字符串中读取项目。

关于c - 在 C 中读取文件内容,跟踪新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32986013/

相关文章:

更改 OpenGL 上下文的大小

c - 从 execv 启动终端 (sh) 返回错误 :/bin/sh:/bin/sh: cannot execute binary file

c - scanf 和错误的输入使输出变得奇怪

c - 解析文件时的 fscanf 格式字符串

c - `fsetpos()`如何用于 "allow random access on files that are too large to handle with ` fseek( )`?"

c - 在eclipse中识别 Debug模式

c - Fork() 执行相同的程序并复制相同的变量 - 操作系统如何将两者保存在内存中,保护每个进程只访问他的变量?

c - scanf() 格式字符串中尾随空格有何影响?

c - Minix 3 stdio.h 无法识别文件 *f

node.js - 子标准输出设置为 "inherit"和 "onData"监听器