我們在哪裏使用getchar()
而不是scanf()
或cin
? 此外,getchar()
的語法不應該是char getchar()
而不是int getchar()
?因爲我們正在閱讀字符類型的輸入。getchar()有什麼用?
回答
C和C++是不同的語言; getchar
存在於C中,而cin
(其固有地取決於類)不存在。 scanf
與getchar
相比非常緩慢,因爲scanf
必須讀取更多數據並執行比getchar
更多的處理。
的另一個原因是其getchar
是,它是用在當這樣
int c;
while ((c = getchar()) != EOF) {
/* do some stuff here */
}
這樣的循環,你可以保持讀取字符,直到您專門達到EOF
(或您選擇的任何其他字符)。
順便說一句,EOF
是int
(因爲它不是可以讀取的有效字符),這也就是爲什麼getchar
必須返回一個int
。
很好的答案,但我會改變「你可以繼續讀行」到「你可以繼續閱讀字符」 – zmb 2014-09-27 14:53:31
@zmb我同意,謝謝。 – randomusername 2014-09-27 14:54:01
誰認爲我應該讓這個答案comunity維基? – randomusername 2014-09-27 14:54:54
- 1. 爲什麼孩子中的getchar()沒有執行?
- 2. 這個C函數有什麼問題? (printf()with getchar())
- 3. 用「fprintf」打印錯誤後調用「getchar()」是什麼意思?
- 4. 爲什麼不用getchar()讀取退格字符?
- 5. 使用的getchar
- 6. 爲什麼C中的getchar()函數是一個整數?
- 7. 這個程序做什麼? (Self calling main function + getchar)
- 8. 這是幹什麼的:while((c = getchar())!='\ n'&& c!= EOF);
- 9. getch()和getchar()之間的區別是什麼?
- 10. 的getchar()是給用C
- 11. 使用getchar()讀取整數
- 12. 幾個如果getchar調用
- 13. 爲什麼backspace在C中撤消一個單獨的getchar()調用?
- 14. 爲什麼我應該在C代碼中使用這樣的getchar()?
- 15. getchar()!= EOF K&R
- 16. 崩盤的getchar
- 17. C getchar錯誤
- 18. C getchar()誤解
- 19. Strcmp和getchar
- 20. getchar()和stdin
- 21. [,]有什麼用?
- 22. 有關C中getchar()的問題?
- 23. 是否有與Java相當的getchar?
- 24. 添加超時getchar()
- 25. while循環和getchar()
- 26. 如何實現getchar()?
- 27. 通過malloc和getchar()
- 28. chomp有什麼用?
- 29. LogManager有什麼用?
- 30. plist有什麼用?
閱讀[一些文檔](http://en.cppreference.com/w/c/io/getchar)應該回答第二個問題。 – 2014-09-27 14:46:26
'cin'不在C中,它特定於C++。 'getchar'就像你可以得到的一樣簡單; 'scanf'可能在內部使用'getchar'。它返回'int',因爲它可能返回字符範圍之外的'EOF'。 – 2014-09-27 14:47:39
'getchar'返回'int',因爲'EOF'超出'char'的範圍。 – asveikau 2014-09-27 14:58:07