用于循环写入特殊标志

时间:2011-10-07 22:35:06

标签: c++ char

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

我希望x在write函数中是一个char。如何将写入函数处理的x更改为char,但是循环中的int?

2 个答案:

答案 0 :(得分:2)

如果您要剥离其范围,xint之间的重点是什么?这就是使这成为一个非常奇怪的请求的原因。您应该x unsigned char - for(unsigned char x = 128; x <224; ++ x) { ...

如果您只是想确保调用unsigned char的{​​{1}}模板专精,请按以下方式调用:

write<>

如果没有,那么你将不得不使用类型转换:

write<unsigned char>(x);

编辑:我刚刚意识到您可能遇到的问题。我的猜测是您最初使用write((unsigned char)x);但发现数字超过127时出现问题。您应该使用char代替unsigned char而不是x或{{1} }。我编辑了我的答案以适应这个。 int的范围是-128到+127。 char的范围为0-255。

答案 1 :(得分:1)

将x转换为char:

write(static_cast<char>(x));

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