【发布时间】:2020-06-16 12:20:22
【问题描述】:
我有一个 C++ 程序,它逐字节地读取二进制文件,然后将其作为字符输出到控制台。
使用unsigned char作为类型后,控制台会打印出它的ascii值,这是我没想到的。
如何让它打印字符而不是它的 ascii 值?
可重现的代码:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
unsigned char a;
a = 'A';
cout << (a > 31 ? a : '.');
}
【问题讨论】:
-
它应该打印字符。请发布minimal reproducible example。 (并确保它是可打印的字符。)
-
它应该打印一个字符和我cannot reproduce
-
你知道
static_cast怎么用吗? -
wandbox.org/permlink/JsXbLRbjK9BAdKAK(使用升级到
int)。 -
也许问题出在你说“类似这样的东西”的地方。请发布准确完整的代码。
标签: c++ utf-8 char cout unsigned