当我尝试使用rand()函数创建整数时,我不能将它们包含在字符串中。这些是我尝试过的两个代码:
int x1, x2;
x1 = (rand() % 14 + 2);
x2 = (rand() % 14 + 2);
char c1 = char(x1);
char c2 = char(x2);
string Hand = {c1, c2};
cout << Hand << endl;
我没有遇到任何错误,但它没有运行。这是我认为正确的那个:
int c1, c2;
c1 = (rand() % 14 + 2);
c2 = (rand() % 14 + 2);
to_string(c1);
to_string(c2);
string Hand = {c1[0], c2[0]};
cout << Hand << endl;
但事实并非如此。这一定非常简单。怎么做?
答案 0 :(得分:2)
注意c1和c2不是向量,所以c1 [0]没有意义。 to_string方法返回一个字符串,不要将参数变为一个。也就是说,代码可以更好地工作:
int c1, c2;
c1 = (rand() % 14 + 2);
c2 = (rand() % 14 + 2);
string Hand = {to_string(c2)[0], to_string(c1)[0]};
cout << Hand << endl;
答案 1 :(得分:1)
尝试这样的事情:
#include <iostream>
#include <stdlib.h> /* srand, rand */
#include <string>
#include <sstream>
using namespace std;
int main() {
// your code goes here
std::ostringstream ss;
int x1, x2;
x1 = (rand() % 14 + 2);
x2 = (rand() % 14 + 2);
ss << x1 << x2;
std::string Hand = ss.str();
cout << Hand << endl;
return 0;
}
答案 2 :(得分:0)
C ++是静态类型的语言。 std::to_string
不会更改类型...它会返回字符串。
至于第一个代码,你正在处理不可打印的字符。