void printchars()
{
for (x=128;x<224;x++)
write(x);
我希望x在write函数中是一个char。如何将写入函数处理的x更改为char,但是循环中的int?
答案 0 :(得分:2)
如果您要剥离其范围,x
和int
之间的重点是什么?这就是使这成为一个非常奇怪的请求的原因。您应该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也可以作为循环计数器。