C++ 这个随机字符串打印代码有什么问题?

C++ 这个随机字符串打印代码有什么问题?,c++,string,random,C++,String,Random,我正在尝试将X(X=用户输入)数字打印到字符串数组(Alpha)的行中,如果行中有“A”,则应在该行中打印一些内容(字符串或随机数),例如“此行有“A”。我无法找出代码中的错误,比如代码中的这一行不正确: (Alpha[dist(gen)]==Alpha[0]) 它在有其他字符串字母(S、p、C等)的行中打印出(“该行有”A”) 我得到的结果是这样的 How many iterations: 10 S S this line has A 1950029843 S C this line has

我正在尝试将X(X=用户输入)数字打印到字符串数组(Alpha)的行中,如果行中有“A”,则应在该行中打印一些内容(字符串或随机数),例如“此行有“A”。我无法找出代码中的错误,比如代码中的这一行不正确: (Alpha[dist(gen)]==Alpha[0])

它在有其他字符串字母(S、p、C等)的行中打印出(“该行有”A”)


我得到的结果是这样的

How many iterations: 10
S
S this line has A 1950029843
S
C this line has A -145672138
A
C
D
C
E
S

Alpha[dist(gen)]
您打印的与您检查的
Alpha[dist(gen)]
不同的
Alpha[dist(gen)]
。每次调用
dist(gen)
都会产生不同的随机数。

错误在接下来的两行。每次调用
dist(gen)
都会得到不同的索引

cout << Alpha[dist(gen)];   
if (Alpha[dist(gen)] == Alpha[0])

请给出预期的输出和您得到的输出,这样可以更容易地提供帮助。不清楚是什么(在我的书中)。dist(gen)在你的循环中被使用了两次,这是一个做什么的函数?@TedLyngmo嗨,ted,我刚刚编辑了我的原始帖子,请看最后一项,这就是我得到的结果。@Areeb太好了!这比我想象的好得多,不是100%确定什么是dist()在做什么though@DanielAaron它在做它所说的。因为
Alpha[dist(gen)]
在同一个{}所以我相信它应该有相同的值直到循环的下一个旋转,所以当我调用==操作符来检查它的值时,它应该和刚才打印的值一样…请纠正我,如果我错了,你错了。想想你自己改正了。添加一条这样的线:<代码> cou@ IGORANTDENIKK。是的,我刚刚检查了你是正确的。,你能告诉我解决方案吗?我试过了,但它不再是随机数,你的代码使dist(gen)成为常量,这给了我一个字符串字母表的输出。
const size\u t j=dist(gen);
必须在循环中,与答案完全相同。
How many iterations: 10
S
S this line has A 1950029843
S
C this line has A -145672138
A
C
D
C
E
S
cout << Alpha[dist(gen)];   
if (Alpha[dist(gen)] == Alpha[0])
const size_t j = dist(gen);
cout << Alpha[j];   
if (Alpha[j] == Alpha[0])