来自种子值的C++随机数字符串

C++ random number string from seed value

本文关键字:C++ 随机数 字符串 种子      更新时间:2024-09-23

这可能简单得离谱,但我仍然是初学者。我需要创建一个字符串,包括用空格分隔的5个随机数。

使用下面的代码,我得到例如随机=";12345";但是我需要字符串随机=";1 2 3 4 5";因为以后我需要在istringstream is{random}命令中使用这些数字作为字符串。

总之,我需要创建一个字符串,其中包括5个用空格分隔的随机数。

感谢您提前提供帮助。

int main()
{
cout <<"Enter seed value: ";
int seed;
cin >> seed;
srand(seed); // random number generator uses seed value entered by the user
for (int i = 1; i <= 5; i++) { // print 25 numbers
int random = 1 + (rand() % 5); // numbers are between 1 - 5
cout << random ;
}
return 1;
}

正如您稍后需要为istringstream字符串一样,您可以首先使用ostringstream来创建字符串。

ostringstream oss;
for (int i = 0; i < 5; ++i)
{
if (i > 0)     // if not the first number add a space between the numbers
oss << ' ';
oss << 1 + (rand() % 5); // add the random number
}
string randomString = oss.str(); // get the string out of the ostringstream

如果打印是您想要的,您也可以在打印随机数后打印空格

int last = 5;
for (int i = 1; i <= last; i++) { // print 25 numbers
int random = 1 + (rand() % 5); // numbers are between 1 - 5
cout << random ;
if( i != last ) cout << " ";
}