【发布时间】:2023-09-29 02:04:01
【问题描述】:
我正在尝试创建一个简单的 PapersPlease 之类的游戏,但是当我的程序从我的数组中输出一个随机名称时,它会输出一个垃圾值 (�),我不确定如何解决这个问题:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int random_number;
string RandomName;
string names[12] = {"Lucas","Rendeev","J2Trappy","D2Savvy","James","Daniel","Abraham","Shaggy","Luke","Harry","Rick","Morty"};
int main(){
srand(time(NULL));
random_number = rand() % 12;
RandomName = names[random_number - 1];
cout << "Name: "<<RandomName<<"\n";
}
样本输出:
Name: �
�t
【问题讨论】:
-
提示:如果
random_number是0会发生什么? -
- 1是干什么用的? -
您认为
rand() % 12产生的值范围是多少?看起来您认为范围是[1, 12],但您应该更仔细地查看它。 :) -
旁注:
rand在可用的计算能力和大多数人的需求之间取得了很好的平衡,当时 C 开始滚动并被正式化。今天,random library 中提供了更强大的工具。 Here is a video that covers the improvements and how to use them