For循环书写特殊符号


void printchars()
{
  for (x=128;x<224;x++)
      write(x);

我希望x在write函数中是一个字符。我怎么能改变x被写入函数作为一个字符,但在循环中的int ?

如果你只是要剥离它的范围,那么制造xint的意义是什么?这就是为什么这个要求很奇怪。你应该把x变成unsigned charfor(unsigned char x = 128; x <224; ++ x) { ...

如果你只是想确保你调用write<>unsigned char模板专门化,然后这样调用它:

write<unsigned char>(x);

如果没有,则必须使用类型强制转换:

write((unsigned char)x);

编辑:我刚刚意识到你可能正在经历什么。我的猜测是,你最初使用char,但发现一些错误的数字超过127。您可能应该为x使用unsigned char,而不是intchar。为了适应这一点,我修改了我的回答。char的取值范围是-128到+127。unsigned char的取值范围为0-255

将x转换为字符:

write(static_cast<char>(x));

请注意,x作为循环计数器也是可以的

最新更新