我试图用C ++将一系列字母改成数字,并且已经开始制作这段代码了。
但是,似乎计算digit1变量的数学运算永远不会被执行。
有什么想法吗?
#include <iostream>
#include <string>
using namespace std;
int main()
{
int qtyofnumbers, num, digit1, counter;
char letters, upperlower;
cout << "Enter a letter: ";
cin >> letters;
for (counter = 0; counter < 8; counter++)
{
if (counter == 3)
cout << "-";
num = static_cast<int>(letters) - static_cast<int>('A');
if (0 <= num && num < 26)
digit1 = (num / 3) + 2;
if (((num / 3 == 6 ) || (num / 3 == 7)) && (num % 3 == 0))
digit1 = digit1-1;
if (digit1 > 9)
digit1 = 9;
cin >> letters;
}
cout << digit1;
return 0;
}
答案 0 :(得分:0)
我的猜测是你输入的问题。你输入大写字母还是小写字母?他们的ASCII codes是不同的。所以,您可能想要更改
中的代码num= static_cast<int>(letters)-static_cast<int>('A');
类似
if (num >= 'a')
num = letters - 'a';
else
num = letters - 'A';
另外,如@jtbandes所述,请使用花括号{
和}
。空格不确定C ++中的范围。即使它只是在你的if语句之后只有一行代码,它将来会让你头疼不已。
答案 1 :(得分:0)
静态演员是否必要?我建议使用字符串流或只是使用.at()逐字符遍历字符串,并依赖ascii值进行转换。 http://web.cs.mun.ca/~michael/c/ascii-table.html。