所以我在空闲时间开始学习C++,并且正在尝试构建一个简单的石头剪刀布游戏。当我尝试运行此程序时,我收到 x、y 和 z 的“未在此范围内定义错误”。
#include <iostream>
#include <stdlib.h>
#include <string>
int main(){
string x,y,z;
srand (time(NULL));
int computer = rand() % 3 + 1;
int user = 0;
std::cout << "====================\n";
std::cout << "rock paper scissors!\n";
std::cout << "====================\n";
std::cout << "1) ✊\n";
std::cout << "2) ✋\n";
std::cout << "3) ✌️\n";
std::cout << "shoot! ";
std::cin >> user;
if(user== 1){
x = (computer == 3) ? "You win!" : "You lose.";
std::cout<<x;
}else if(user==2){
y = (computer == 1) ? "You win!" : "You lose.";
std::cout<<y;
}else{
if(user == 3){
z = (computer == 2) ? "You win!" : "You lose.";
std::cout<<z;
}
}
}
问题出在哪里?
最佳答案
您有string x,y,z;
但是string
属于命名空间std
.
您的cout
有效,因为您输入了 std::cout
在你的代码中。对这些字符串执行相同的操作,因为您没有 using namespace std;
在您的代码中。
解决方案:
更改string x,y,z;
至std::string x,y,z;
旁白:
您还缺少 header <ctime>
对于 srand(time(NULL));
关于c++ - 字符串未在范围内定义。不确定为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61084691/