在int之前使fscanf忽略没有空格的字母

时间:2013-05-01 08:50:39

标签: c input

我正在尝试(在C中)从文件中读取如下行:

GFE_1
GFE_8
GFE_19 

我想使用fscanf忽略字母和_并将数字末尾的数字放入变量。

显然我所拥有的是不对的:

fscanf(f, "%d", number);

我知道如果他们被一个空格隔开怎么跳过它们但是在这种情况下我已经卡住了。

2 个答案:

答案 0 :(得分:3)

这样的东西
fscanf(f, " %*[^A-Z]_%d", &number);

或者如果前导字符始终相同,那么它就像

一样简单
fscanf(f, " GFE_%d", &number);

答案 1 :(得分:1)

您可以跳过阅读字母和_使用此声明

int fscanf ( FILE * stream, const char * format, ... );

fscanf(f, " %*[^A-Z]_%d", &number);