c++ - 如何将数字添加到 char 中,从而导致数字以“ASCII 方式”添加?
问题描述
所以现在,如果我有EncCode = 3
,并且MessagetEnc = 'f'
输出为 105。我希望输出为“i”。另外,为什么输出 105 而不是“i”,就像在 C 中会发生的那样?
int EncCode;
cout << "Encryption code: " << endl;
cin >> EncCode;
char MessagetEnc;
cout << "Message to Encrypt:";
cin >> MessagetEnc;
cout <<"Encrypted message:";
cout << MessagetEnc + EncCode;
我曾经cout << "the message to encrypt is " << MessagetEnc << " and EncCode is " << EncCode;
查看是否将值混淆,但事实并非如此,所以我假设这是 c++ 的工作方式。如果我不明白,我只能等到我更好地了解编程/编码的工作原理。
解决方案
char
和相加的结果int
是int
; 等效的 C 将是printf("%d", MessagetEnc + EncCode)
.
转换为char
打印前。
cout << static_cast<char>(MessagetEnc + EncCode);
推荐阅读
- c++ - 向量
>::size_type 或向量 ::size_type 处理向量时 >的大小()? - python - 将 xy 转换为 x*y?
- bevy - 如何在 Bevy 中围绕本地原点旋转 3d 网格
- postgresql - Amazon RDS 上的 PostgresSQL
- python - mysql没有插入正确的值
- python - 根据条件创建修改后的熊猫行副本的更好方法
- c# - 使用网络服务获取随机视频并播放。C# WPF
- arrays - 使用strtok在C中为这个结构分配空间的正确方法是什么
- css - pure-react-carousel 点我想显示在我的 div 滑动时移动的滚动条
- javascript - 如何使用 React Hooks 实现刷新按钮?