cout >> "Please enter a number\n";
這是錯誤的,std::ostreams
只提供operator<<
來插入格式化的d ATA。改爲使用cout << "Please enter a number\n";
。
getline(cin x);
首先,你錯過了一個,
,因爲getline需要兩個或三個參數。但由於x
是integer
而不是std::string
它仍然是錯誤的。想一想 - 你能存儲一個整數內的文本行嗎?改爲使用cin >> x
。
int y = rand();
雖然這似乎沒有錯,但是有一個邏輯錯誤。 rand()
是一個僞隨機數發生器。它使用種子作爲起始值和某種算法(a*m + b
)。因此你必須指定一個起始值,也叫做種子。您可以使用srand()
來指定。相同的種子會產生相同的數字順序,所以請使用類似srand(time(0))
的東西。
while x != y
if x < y;
使用括號。並放棄額外的;
。在您的程序中的流浪分號;
類似於空表達式。
編輯:工作代碼:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main(){
int x;
int y;
srand(time(0));
y = rand();
std::cout << "Please enter a number: ";
do{
if(std::cin >> x){
if(x < y)
std::cout << "Go higher: ";
if(x > y)
std::cout << "Go lower: ";
}
else{
// If the extraction fails, `std::cin` will evaluate to false
std::cout << "That wasn't a number, try again: ";
std::cin.clear(); // Clear the fail bits
}
}while(x != y);
std::cout << "Congratulations, you guessed my number :)";
return 0;
}
如果這是家庭作業,請將其標記爲此類。 – 2012-04-18 20:58:28
這裏沒有什麼可調試的,因爲你所有的問題看起來都是語法錯誤。 – Chad 2012-04-18 20:59:19
這不是家庭主婦,我不知道如何解決語法錯誤 – Foxic 2012-04-18 21:00:16