C++ 将枚举与rand()函数一起使用

C++ 将枚举与rand()函数一起使用,c++,random,enums,C++,Random,Enums,这里没有程序员,想在作业上得到一些帮助。我会用一个类似的例子,如果有人能帮我找出我做错了什么,那就太好了。我知道rand是一个整数,默认情况下不能设置为等于enum。我正在尝试使rand integer与随机选择的枚举配对。很抱歉重新发布了一个已经提出的问题,但是其他用户编写的其他示例有点让我困惑 注意:我没有将srand添加到种子随机数中,因为在我的特定作业中,它不需要根据我的导师进行种子设定,不知道为什么,只是按照说明进行 #include <iostream> #include

这里没有程序员,想在作业上得到一些帮助。我会用一个类似的例子,如果有人能帮我找出我做错了什么,那就太好了。我知道rand是一个整数,默认情况下不能设置为等于enum。我正在尝试使rand integer与随机选择的枚举配对。很抱歉重新发布了一个已经提出的问题,但是其他用户编写的其他示例有点让我困惑

注意:我没有将srand添加到种子随机数中,因为在我的特定作业中,它不需要根据我的导师进行种子设定,不知道为什么,只是按照说明进行

#include <iostream>
#include <ctime>
#include <iomanip>

using namespace std;

int main(){ 

  enum SHIRT_COLOR { WHITE, BLACK, RED, GREEN};
  int value = 0; //rand num to be generated
  value = rand() % 4;

  SHIRT_COLOR shirt = WHITE;
  SHIRT_COLOR shirt = BLACK;
  SHIRT_COLOR shirt = RED;
  SHIRT_COLOR shirt = GREEN;
  shirt = static_cast<SHIRT_COLOR>(value);

  cout << "Random Shirt Color: " << shirt;

}    
#包括
#包括
#包括
使用名称空间std;
int main(){
enum衬衫颜色{白、黑、红、绿};
int value=0;//要生成的rand num
value=rand()%4;
衬衫颜色衬衫=白色;
衬衫颜色衬衫=黑色;
衬衫颜色衬衫=红色;
衬衫颜色衬衫=绿色;
衬衫=静态施法(数值);

这里有两个问题,但它们都与
rand()
无关


多重声明 在这里,您创建了四个同名变量。不清楚为什么要这样做

只需为您选择的衬衫颜色设置一个变量:

  SHIRT_COLOR shirt = static_cast<SHIRT_COLOR>(value);
SHIRT\u COLOR SHIRT=static\u cast(值);

输出 C++不知道如何开箱即用地打印枚举,程序也不知道这些变量/常量名称;它们只存在于源代码中

那么,您可能会在这一行收到一个编译错误:

cout << "Random Shirt Color: " << shirt;

cout这里有两个问题,但它们都与
rand()
无关


多重声明 在这里,您创建了四个同名变量。不清楚为什么要这样做

只需为您选择的衬衫颜色设置一个变量:

  SHIRT_COLOR shirt = static_cast<SHIRT_COLOR>(value);
SHIRT\u COLOR SHIRT=static\u cast(值);

输出 C++不知道如何开箱即用地打印枚举,程序也不知道这些变量/常量名称;它们只存在于源代码中

那么,您可能会在这一行收到一个编译错误:

cout << "Random Shirt Color: " << shirt;

您似乎需要使用
rand()
?您不允许使用
库的高级功能?哦,我知道您想要像“白色”、“黑色”一样输出等?约翰在我的CS课上没有看过图书馆yet@John正确,不是输出随机数,而是希望随机数与枚举上设置的一种颜色相匹配。您希望如何从一个可能有五个不同值的随机数中仅导出四个可能的、不同的
enum
值.Spock会说:这是非常不合逻辑的。似乎你需要使用
rand()
?你不允许使用
库的高级功能?哦,我知道你想要像“白色”、“黑色”一样输出等?约翰在我的CS课上没有看过图书馆yet@John正确,不是输出随机数,而是希望随机数与枚举上设置的一种颜色相匹配。您希望如何从一个可能有五个不同值的随机数中仅导出四个可能的、不同的
enum
值斯波克会说:这是非常不合逻辑的。