编译代码时出错。
错误输出:
main.cpp: 35:16: error: switch quantity not an integer
我不知道为什么。代码如下:
int Values(string letter) {
switch( tolower(letter) ) {
case 'a' : a.setTotal();
break;
此致
答案 0 :(得分:4)
string
不是char
,它是表示字符数组的对象。
您应该传递string
。
char
传递给该函数
tolower(int)
存在于C ++中,它的目的是获取字符,而不是字符串。
这是解决此问题的另一种方法,您需要对代码进行少量更改:
由于我非常确定letter
的长度为string
1
,根据名称判断,您可以更改switch
语句以访问{ {1}},这将是letter[0]
中的第一个字符。您还必须将string
传递给letter[0]
。
答案 1 :(得分:2)
letter
是字符串,因此tolower(letter)
生成一个字符串。但你的情况是性格('a')。另外,在C / C ++中不可能使用switch作为字符串。
请改为使用此行:
switch( tolower(letter.data[0]) )
答案 2 :(得分:0)
switch inscrutvion只接受枚举类型(枚举),字符(char)或整数(int,unsigned,long)
答案 3 :(得分:0)
看起来你想要使用一个角色。
更改函数的参数:
int Values(string letter)
到此:
int Values(char letter)
switch
语句将起作用。