C++ 电话拨号程序,将字母转换成卡片套装而不是数字
我正在尝试创建一个程序,在这个程序中,用户可以使用字母或数字输入电话号码,如果他们使用字母,它应该将它们转换为电话键盘上相应的号码。然而,当字母被转换时,它们不是变成数字,而是变成卡片上的符号,像梅花、红桃和黑桃。不知道为什么会这样。下面是应该进行转换的函数:C++ 电话拨号程序,将字母转换成卡片套装而不是数字,c++,switch-statement,C++,Switch Statement,我正在尝试创建一个程序,在这个程序中,用户可以使用字母或数字输入电话号码,如果他们使用字母,它应该将它们转换为电话键盘上相应的号码。然而,当字母被转换时,它们不是变成数字,而是变成卡片上的符号,像梅花、红桃和黑桃。不知道为什么会这样。下面是应该进行转换的函数: #include <iostream> #include <cctype> using namespace std; int read_dials(char &digit1, char &digi
#include <iostream>
#include <cctype>
using namespace std;
int read_dials(char &digit1, char &digit2, char &digit3, char &digit4, char &digit5, char &digit6, char &digit7, char &digit8);
int todigit(char &digit);
void acknowledge_call(char digit1, char digit2, char digit3, char digit4, char digit5, char digit6, char digit7, char digit8);
int todigit(char &digit)
{
int errorCode = 0;
switch (digit)
{
case 1:
break;
case 2:
case 'A':
case 'B':
case 'C':
case 'a':
case 'b':
case 'c':
digit = 2;
break;
case 3:
case 'D':
case 'E':
case 'F':
case 'd':
case 'e':
case 'f':
digit = 3;
break;
case 4:
case 'G':
case 'H':
case 'I':
case 'g':
case 'h':
case 'i':
digit = 4;
break;
case 5:
case 'J':
case 'K':
case 'L':
case 'j':
case 'k':
case 'l':
digit = 5;
break;
case 6:
case 'M':
case 'N':
case 'O':
case 'm':
case 'n':
case 'o':
digit = 6;
break;
case 7:
case 'P':
case 'Q':
case 'R':
case 'S':
case 'p':
case 'q':
case 'r':
case 's':
digit = 7;
break;
case 8:
case 'T':
case 'U':
case 'V':
case 't':
case 'u':
case 'v':
digit = 8;
break;
case 9:
case 'W':
case 'X':
case 'Y':
case 'Z':
case 'w':
case 'x':
case 'y':
case 'z':
digit = 9;
break;
}
// nice size switch statemwent
return errorCode;
}
#包括
#包括
使用名称空间std;
int read_dials(字符和数字1、字符和数字2、字符和数字3、字符和数字4、字符和数字5、字符和数字6、字符和数字7、字符和数字8);
整数到数字(字符和数字);
无效确认调用(char digit1、char digit2、char digit3、char digit4、char digit5、char digit6、char digit7、char digit8);
整数到数字(字符和数字)
{
int errorCode=0;
开关(数字)
{
案例1:
打破
案例2:
案例“A”:
案例“B”:
案例“C”:
案例“a”:
案例“b”:
案例“c”:
数字=2;
打破
案例3:
案例“D”:
案例“E”:
案例“F”:
案例“d”:
案例“e”:
案例“f”:
数字=3;
打破
案例4:
案例“G”:
案例“H”:
案例“I”:
案例“g”:
案例“h”:
案例“i”:
数字=4;
打破
案例5:
案例“J”:
案例“K”:
案例“L”:
案例“j”:
案例“k”:
案例“l”:
数字=5;
打破
案例6:
案例“M”:
案例“N”:
案例“O”:
案例“m”:
案例“n”:
案例“o”:
数字=6;
打破
案例7:
案例“P”:
案例‘Q’:
案例“R”:
案例S:
案例“p”:
案例‘q’:
案例“r”:
案例s:
数字=7;
打破
案例8:
案例“T”:
案例“U”:
案例“V”:
案例“t”:
案例“u”:
案例“v”:
数字=8;
打破
案例9:
案例“W”:
案例“X”:
案例“Y”:
案例“Z”:
案例“w”:
案例“x”:
案例“y”:
案例“z”:
数字=9;
打破
}
//漂亮的开关状态
返回错误码;
}
以下是打印电话号码的功能:
void acknowledge_call(char digit1, char digit2, char digit3, char digit4, char digit5, char digit6, char digit7, char digit8)
{
cout << "Phone Number Dialed: " << digit1 << digit2 << digit3 << digit4 << digit5 << digit6 << digit7 << digit8;
}
void确认_调用(char-digit1、char-digit2、char-digit3、char-digit4、char-digit5、char-digit6、char-digit7、char-digit8)
{
cout不使用字符数据类型,只需将数字分配给整数变量,或将48+数字分配给字符值,该字符值分配ASCII值48+1=49,即字符“1”
当你写作时
char ch = 'A';
您正在将ch的值设置为编译器用来表示字符“A”的数字。这通常是“A”的ASCII码,即65
与任何数字类型一样,您可以使用普通数字对其进行初始化,从而得到相同的结果:
char ch = 65;
在您的例子中,您正试图为char变量分配值2,3,…9,这些值依次显示在不同输出流上可能显示不同的相对ASCII值
有关ASCII码的更多信息,请参阅以下链接:
不使用字符数据类型,只需将数字分配给整数变量,或将48+数字分配给字符值,该字符值分配ASCII值48+1=49,即字符“1”
当你写作时
char ch = 'A';
您正在将ch的值设置为编译器用来表示字符“A”的数字。这通常是“A”的ASCII码,即65
与任何数字类型一样,您可以使用普通数字对其进行初始化,从而得到相同的结果:
char ch = 65;
在您的例子中,您正试图为char变量分配值2,3,…9,这些值依次显示在不同输出流上可能显示不同的相对ASCII值
有关ASCII码的更多信息,请参阅以下链接:
我解决了这个问题,在我要转换的数字的两边都加上了单撇号
例如:
digit = '2';
而不是
digit = 2;
我解决了这个问题,在我要转换的数字的两边都加上了单撇号
例如:
digit = '2';
而不是
digit = 2;
如何打印数字?打印数字通常不会生成卡片套装,因此您必须以不寻常的方式打印。编辑帖子以显示我用于打印的功能。您如何打印数字?打印数字通常不会生成卡片套装,因此您必须以不寻常的方式打印。编辑显示我用来打印的函数的帖子。