c - 从文件中读取双数 - c

标签 c

我的文件充满了数据行: 每行包含:
'char' 空格 'double'。例如:

a 17.322\n
c 9.45\n

我想“吃掉”\n 和 char,并且只读取 double 字。 最好的方法是什么。

谢谢,如果我有英语错误,抱歉

最佳答案

我认为简单的fscanf就可以完成这项工作

#include <stdio.h>

int main()
{
    FILE* f = fopen("test", "r");
    float n;

    while(fscanf(f, "%*[a-z]%f ", &n) == 1)
        printf("%f, ", n);

    return 0;
}
  • "%*" 忽略它读取的所有内容
  • “[a-z]” 读取“a”到“z”范围内的字符
  • "%f" 读取单精度 float (换句话说 float)
  • "" 忽略所有 whitespace characters
  • fscanf如果出现读取错误(例如文件结尾)或读取值的数量,在我们的例子中为 1
  • ,则返回 EOF

关于c - 从文件中读取双数 - c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69753688/

相关文章:

c - 构建 Linux cp 命令的版本

c - 查找字符在字符串中的位置时遇到问题

c - 枚举对象设置为不等于其各自枚举常量的值

arrays - 在 C 中,什么时候我们随便移出指针区域是安全的?

c++ - 在没有库函数的情况下获取进程 ID?

c - 函数参数数据类型错误

c - 从 SIGCHLD 返回的信号似乎是错误的

c - 如何比较 "text"(字符串)以用作 if 语句的条件

c - C : Data not being sent/received properly? 中的服务器/套接字编程

c - 当 x 为负时,!x 是否等于真?