2012-10-23 42 views

回答

3

我的猜測是它代表了\n行終止符,無論您用什麼來檢查arch的值。 SO有很多有關線路終端的問題,我相信你可以很容易地找到的方式來處理它。

+0

什麼是SO?我認爲fgets會比scanf更好...我試圖從標準輸入中獲取文件名,我不想要'?'在上面。 – cracq

+0

SO是堆棧溢出。如果你知道它在那裏,剝掉換行符就像'arch [strlen(arch)-1] = 0'一樣簡單。 –

4

fgets()存儲其後的換行符:

與fgets()從流至多一個小於大小的字符讀取和 並將它們存儲到緩衝器由s指向。讀取在 EOF或換行符後停止。如果讀取換行符,則將其存儲到緩衝區中。 '\ 0'存儲在緩衝區中的最後一個字符之後。

如果您在某種調試器中檢查變量,可能是換行符顯示爲「?」,或者是「詢問標記」所表達的任何內容。