我的文件充满了数据行:
每行包含:
'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/