cout >> "Please enter a number\n";
Этот неверно, std::ostreams
предоставляет только operator<<
для вставки в формате d ата. Вместо этого используйте 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;
Используйте скобки. И отбросьте дополнительный ;
. Блуждающая точка с запятой ;
в вашей программе напоминает пустое выражение.
EDIT: Работа Код:
#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;
}
Если это домашнее задание, пожалуйста, пометить его как таковой. –
Ничего отладить здесь, так как все ваши проблемы кажутся синтаксическими ошибками. – Chad
Это не homewok, и я не уверен, как исправить ошибки синтаксиса – Foxic