繁体   English   中英

如何从文件中读取带有特殊字符的浮点类型数字

[英]How to read float type numbers with special characters from a file

我想从txt文件中读取一个float类型的数字,如下所示:

American history 91 12.9% 8 1

但如果我读了

fscanf(file, "%s %d %f %d %d", major, &number1, &percentage, &number2, &number3);

它给了我一个错误,因为涉及到一个特殊的角色。 我该怎么办才能只取出漂浮部分?

由于百分号,它没有失败,但是因为你的格式字符串是错误的。 %s不读取任意字符串,它会读取第一个空格的字符,即“American”。 fscanf会失败。 提示:抬头[

虽然要超过%但您需要做的就是在格式字符串中输入: %f%% (读取浮点数,匹配% )。

联机帮助页

匹配文字'%'。 也就是说,格式字符串中的%%与单个输入'%'字符匹配。 不进行转换(但丢弃了初始空白字符),并且不会进行分配。


例:

#include <stdio.h>

int main() {
    float a, b;
    scanf("%f%%%f", &a, &b);
    printf("%f, %f\n", a, b);
    return 0;
}

输出:

$ gcc test.c && echo "1.2%3.4" | ./a.out
1.200000, 3.400000

使用反斜杠()作为转义字符

fscanf(文件,“%s%d%f \\%%d%d”,主要,&number1,&percentage,&number2,&number3);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM