c - 从C中的一行中解析可变数量的不同类型的整数

标签 c parsing arguments scanf fgets

我有一个文件,其中的行由“\n”分隔,其中每行看起来都像

10010 0 19 7 18

10014 -1 -1 -1 11 10db8 1

也就是说,每一行总是有 5 个或 7 个空格分隔的值,并且每个值的类型也是事先已知的。我想逐行读取文件并解析每一行以提取 inttypes (SCNi32、SCNu32、SCNx32..) 并存储在相应的 inttype 变量中。做到这一点最简单的方法是什么?我是 C 语言新手。

最佳答案

  1. 使用 fgets() 读取该行,通过将行分解为标记来解析该行。

  2. 使用 strtok() 将行分成标记。

  3. 使用 atoi() 将标记转换为整数,或将任何其他字符串转换为整数。

关于c - 从C中的一行中解析可变数量的不同类型的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43111850/

相关文章:

linux - 如何指定 scons 中使用的 linux 程序集的命令行 args 和 liker?

c - 为什么 printf() 在 Windows 上打印这个神秘的额外文本?

c - 对于空终止字符串,strlen 有时等于 sizeof

javascript - 使用 JavaScript 解析 JSON 数组并返回所选部分

parsing - 语法和 s 表达式有什么区别

javascript - 概念 : Comparing objects and arrays like atrings and numbers in JavaScript

c - 多线程程序 : waiting on input

c++ - 如何使用 OpenSSL EVP 例程进行 RSA 公钥加密?

parsing - awk 版本问题 - 将十六进制转换为十进制

c - C 中的函数指针和指针参数