2013-05-01 26 views
0

我想(在C)从文件中读取与像线以下:制作前的fscanf忽略不带空格的字母INT

 
GFE_1 
GFE_8 
GFE_19 

我想使用的fscanf忽略字母和_和将数字结尾放入一个变量中。

显然,我有什么是不正确的:

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

我知道如何跳过他们,如果他们是通过空间,但在这种情况下,我已经得到了卡分离。使用此语句

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

回答

3

如何像

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

或者,如果主角都是一样它是那样简单

fscanf(f, " GFE_%d", &number); 
+0

谢谢,这个伎俩。 – Dawson 2013-05-01 09:08:29

+2

@Dawson,总是检查'fscanf()'的结果以确保发生了成功的分配(在这种情况下结果应该是1)。 – hmjd 2013-05-01 09:13:10

1

可以跳过读取字母和_

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