我是C新手,学了一个多月。我有Python的初级知识,比如创建列表,修改列表,循环等等。我不知道一些我在Python中知道的C代码。
我正在为一个学校班级制作一个程序(创意程序)。这是我代码的一部分(描述在底部):
int number, new_one, num_letter;
char one;
cout << "You chose to encypher a message\nPlease choose an integer between 1-25:";
cin >> number;
cout << "How many letters are in your word?";
cin >> num_letter;
if (num_letter == 1)
{
cout << "Enter the first letter";
cin >> one;
new_one = one + number;
cout << "Your encrypted message is '"
<< static_cast<char>(new_one)
<< "' with the code number of "
<< number;
我正在编写一个程序,它可以对一条消息进行加密和解密。用户可以选择消息的字母数(最多10个,因为我还不知道如何在C中使用for
-循环)。然后,他们选择一个整数。然后,他们输入字母,按Enter键,输入字母,并按Enter键输入消息中的字母数(我还不知道如何在C中将字符串分隔为字符)。
当用户输入他们的字母并点击Enter键时,我将这个字母cin >>
到变量one
中,这是一个char
。然后,我将one
添加到用户选择的number
中,这样one
的ASCII码就增加了number
的值。
例如,当我为number
输入3
,为one
的值输入h
时,104
(h
的ASCII码)应与3
相加,得到107
,然后我将static_cast
转换为char
值。
但是,当我把h
和3
相加时,它创建的不是107
,而是155
。其他变量也是一样。我试着用cout
把static_cast<int>(one)
(在这个例子中,是字母h
)和number
(就是3
)相加。它们打印出104
和3
。
但是,当我把这两个值相加时,它会打印155
。为什么会发生这种情况?
1条答案
按热度按时间k10s72fa1#
这是我的解决方案,希望对你有帮助!