我只是在C++
開始了
歡迎!我知道你會發現學習編程C++既困惑又愉快。我可以建議你先獲得一本好的C++書嗎?這裏有一本很好的書籍列表:The Definitive C++ Book Guide and List
1)以下程序出了什麼問題?
#include <iostream>
using namespace std;
你不應該導入整個std
命名空間。在這個名字空間中有很多符號,並且在某些時候你幾乎肯定會碰到它們中的一個。我知道很多初學者教科書都會教你如何做到這一點。別。
int main()
{
char thing[1];
沒有理由聲明thing
數組。它應該是char thing;
。
cin >> thing;
因爲,當您這樣做時,您會創建緩衝區溢出錯誤。由於thing
是一個數組,因此cin
將把thing
視爲C風格的字符串,並且愉快地將整個輸入行寫入它,即使它不適合。
if (thing == 97)
cout << "You pressed 'a'!\n";
- (假設你沒有修復的
thing
定義),thing==97
陣列進行比較,以恆定97.更具體地,所述陣列的所述第一元素的地址進行比較,以恆定97。這是一件壞事,甚至可能不會編譯。
- (假設您修復了
thing
的定義),裸露的常量97
令您的代碼讀者感到困惑,包括您自己。相反,將thing
與同樣有效的積分常數'a'
進行比較。
全部放在一起:
#include <iostream>
using std::cout;
using std::cin;
int main()
{
char thing;
cin >> thing;
if (thing == 'a')
cout << "You pressed 'a'!\n";
else
cout << "You pressed not-'a': " << thing << "\n";
return 0;
}
2)我怎樣才能讓這個而不必鍵入字母作爲輸入,然後按回車鍵,該程序只是立即接受該按鍵?
正如其他人指出的那樣,您必須爲此使用特定於平臺的API。在Microsoft Windows上,嘗試getch()
。
你在Linux/Unix或Windows上嗎? – Jason 2011-05-19 15:35:55