2013-04-29 83 views
0

所以我有這樣的事情:scanf在哪裏離開文件指針?

while (scanf("somepattern",arg1,arg2)==2) { 
    if(arg1==0) break; 
    <code here> 
} 

if(scanf("someotherpattern")==1) { 
    <code here> 
} 

我的問題是:匹配所有的模式等於2後,哪裏是scanf功能在文件中指向?它是否消耗if中的「0」?

+0

你的意思是'fscanf()'?因爲'scanf()'固定爲'stdin' – Mike 2013-04-29 19:14:46

+2

@Mike:爲什麼這很重要? 'stdin'具有像其他任何流一樣的當前位置。 – 2013-04-29 19:17:58

+0

@Keith:這很重要,因爲我試圖確定在這裏問的是什麼。由於代碼顯然不是真實的,而且這個問題對我來說沒有意義,所以我希望我能夠提示對問題進行更正或澄清,以便理解正在提問的內容。 – Mike 2013-04-29 19:32:33

回答

2

將導致匹配失敗的字符保持未讀。該標準在fscanf的描述中多次說明。

+0

很好。還想補充說''scanf()'也停在I/O錯誤或EOF上。 – chux 2013-09-06 21:54:17