我有一个充满数据行的文件:每行包含:
'char'空格'double'。例句:
a 17.322n
c 9.45n
我想"吃掉"n和字符,只读取双精度数字。做这件事最好的方法是什么?
谢谢,如果我有英语错误,我很抱歉
我认为简单的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
)" "
忽略所有空白字符- fscanf在读取错误(例如文件结束)或读取值的情况下返回
EOF
在我们的例子中是1