无符号字符上的随机数一直是'?'

Ali*_*Ali 1 c++ random unsigned-char

我之前曾问过一个与生成随机无符号字符有关的问题,但是由于我应用的简单性,所以提出了很好的建议. srand((unsigned)time(NULL)); rand()%256;

我在节目开始时给这个号码打了一次,但是我一直在'?' 对于一个随机的char.不是所有的时间,但大部分时间,这使我失去了我的焦点.

Dav*_*eas 9

很可能你不断得到你的终端不需要如何打印和输出的随机字符?.尝试int在打印前将它们转换为:

std::cout << (int)my_random_char;
Run Code Online (Sandbox Code Playgroud)

  • @rolandbishop:有些人可能不会.它取决于终端的配置,字符集......如果你要生成随机*数字*,你应该打印*数字*而不是字符,这就是转换为"int"的原因.如果您想要的是真实字符,请考虑仅使用可打印子集. (2认同)

Kyl*_*nes 5

你没得到'?' 作为一个字符,它正在以这种方式打印,因为所选字符不可打印.将其打印为整数,您将看到该值是随机的,如您所料.