-2
A
回答
8
格式化I/O;從寶寶的第一個C++採取:
#include <string>
#include <iostream>
int main()
{
std::string name;
std::cout << "Enter your name: ";
std::getline(std::cin, name);
std::cout << "Thank you, '" << name << "'." << std::endl;
}
這還不是很滿意的,因爲很多事情是可以(並因此將)會出問題。這裏有一個稍微防水版本:
int main()
{
std::string name;
int score = 0;
std::cout << "Enter your name: ";
if (!std::getline(std::cin, name)) { /* I/O error! */ return -1; }
if (!name.empty()) {
std::cout << "Thank you, '" << name << "', you passed the test." << std::endl;
++score;
} else {
std::cout << "You fail." << std::endl;
--score;
}
}
使用getline()
意味着你可能會讀一個空行,所以這是值得檢查如果結果是空的。例如,檢查讀取操作的正確執行也是很好的,因爲用戶可以將空文件傳送到標準輸入(例如,通常不會假定任何特定情況存在併爲任何事情做好準備)。替代方案是令牌提取,std::cin >> name
,它一次只讀取一個單詞,並像其他任何空白一樣對待換行符。
0
使用gets()作爲this示例示例顯示。 它是簡短的,具有最小的錯誤&。
+0
@KerrekSB你爲什麼這麼認爲? –
+1
嗨,我的評論去了哪裏?關於主題,'gets()'是危險的,因爲它完全沒有被檢查,並且它被廣泛的棄用和泄氣。絕對不是應該推薦的東西,在C++環境下更是如此。 –
相關問題
- 1. 獲取準確的用戶輸入,C
- 2. 使用Switch C++獲取用戶輸入
- 3. 在c#中獲取用戶輸入
- 4. C - 讀取用戶輸入
- 5. 獲取用戶輸入
- 6. 獲取用戶輸入
- 7. 獲取用戶輸入
- 8. Java獲取用戶輸入
- 9. 獲取用戶輸入
- 10. 當用戶點擊輸入鍵時獲取用戶輸入jquery
- 11. 獲取用戶輸入的列的值
- 12. C讀取用戶輸入的數據
- 13. 獲取用戶輸入使用cin.get()在C++的問題
- 14. 獲取「用戶輸入的最大值」?
- 15. JTextArea獲取用戶輸入的文本
- 16. 獲取Python用戶的按鍵輸入
- 17. 從Lua中的用戶獲取輸入
- 18. 獲取用戶輸入的硒webderiver
- 19. Linux x86的ASM - 獲取用戶輸入
- 20. 關於獲取來自用戶的輸入的查詢C
- 21. 從C#中的用戶處獲取輸入的方法
- 22. 獲取客戶輸入塊
- 23. 使用輸入()在八度中獲取STDIN的用戶輸入?
- 24. 使用PHP獲取用戶輸入
- 25. 使用QTableWidget獲取用戶輸入
- 26. 獲取用戶輸入的第一個字母在C++中
- 27. 檢查並獲取來自終端C的用戶輸入#
- 28. Objective C - 獲取未知類型的用戶輸入
- 29. 如何獲取用戶輸入的歷史C?
- 30. C++不能獲取用戶輸入的strtok
你看過你寫的這些相關問題嗎?您是否看過這個頁面右側的「相關」部分所鏈接的問題? – Mat
是的,我看了一個 – melonQheadQsheep
我可以使用:string str =「」; getline(cin,str,'\ n');這是一個收集輸入和在多線程程序中使用的好方法 – melonQheadQsheep