首页 > 解决方案 > 如何将数字添加到 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++ 的工作方式。如果我不明白,我只能等到我更好地了解编程/编码的工作原理。

标签: c++encryption

解决方案


char和相加的结果intint; 等效的 C 将是printf("%d", MessagetEnc + EncCode).

转换为char打印前。

cout << static_cast<char>(MessagetEnc + EncCode); 

推荐阅读