2012-12-03 84 views
1

我儘量讓周圍的fscanf一個包裝功能部件,但不明白爲什麼它沒有工作,包裝功能部件沒有工作

char name[255] = {0}; 
fscanf(inFile, "%s", &name); // This work fine 

但是當我做這個

int WrapFScanF(File* inFile, const char* format, ...) { 

    int rv; 
va_list args; 

va_start(args, fmt); 
rv = fscanf(file, fmt, args); 
va_end(args); 

return rv; 
} 

char name[255] = {0}; 
WrapFScanF(inFile, "%s", &name); // This work fine 

它沒有工作。有任何想法嗎?謝謝!

回答

3

你真的想讀一下vfscanf()。當您有va_list時,請使用它代替fscanf(),因爲va_list不能像那樣使用。

+0

謝謝,但在VS2008下,它似乎不支持vfscanf()。 – NachoChip

+0

@NachoChip:你說得對,那很不幸。 'v * scanf()'函數是C99,並且MS不會很快支持它。引用[MS發言人](http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/):我建議您考慮使用不同的編譯器,例如Intel或gcc_ – rodrigo