[英]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.