簡體   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