For循环书写特殊符号
For loop writing special signs
void printchars()
{
for (x=128;x<224;x++)
write(x);
我希望x在write函数中是一个字符。我怎么能改变x被写入函数作为一个字符,但在循环中的int ?
如果你只是要剥离它的范围,那么制造x
和int
的意义是什么?这就是为什么这个要求很奇怪。你应该把x
变成unsigned char
—for(unsigned char x = 128; x <224; ++ x) { ...
。
如果你只是想确保你调用write<>
的unsigned char
模板专门化,然后这样调用它:
write<unsigned char>(x);
如果没有,则必须使用类型强制转换:
write((unsigned char)x);
编辑:我刚刚意识到你可能正在经历什么。我的猜测是,你最初使用char
,但发现一些错误的数字超过127。您可能应该为x
使用unsigned char
,而不是int
或char
。为了适应这一点,我修改了我的回答。char
的取值范围是-128到+127。unsigned char
的取值范围为0-255
将x转换为字符:
write(static_cast<char>(x));
请注意,x作为循环计数器也是可以的
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 将无符号char*转换为std::istream*C++
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 如何用转义符替换字符串中的所有特殊字符
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- vscode g++链路故障:体系结构x86_64的未定义符号
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何理解将半精度指针转换为无符号长指针和相关的内存对齐
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 使用gcc从静态链接的文件中查找可选符号
- C++中无符号字符溢出
- 可以在 cpp 文件中C++定义为特殊符号的变量β
- 为C++字符串中的特殊符号 (") 赋予文字含义的有效C++方法
- 对于不确定值的无符号字符类型,标准中特殊语言对于左值到右值的转换有什么意义?
- 用一行书写:加或减一个数字的符号
- For循环书写特殊符号
- 为什么这种特殊情况会导致符号链接错误
- 在 C++ 中使用特殊符号时"Illegal case"
- 具有特殊字符的 C++ 类型书写效果