编译代码时出现错误。
错误输出:
main.cpp:35:16:错误:开关量不是整数
我不知道为什么。代码如下:
int Values(string letter) {
switch( tolower(letter) ) {
case 'a' : a.setTotal();
break;
问候
编译代码时出现错误。
错误输出:
main.cpp:35:16:错误:开关量不是整数
我不知道为什么。代码如下:
int Values(string letter) {
switch( tolower(letter) ) {
case 'a' : a.setTotal();
break;
问候
Astring
不是 a char
,它是一个表示字符数组的对象。您应该传入 a ,而不是将 a 传递string
给该函数char
。
tolower(int)
存在于 C++ 中,它旨在接受字符,而不是字符串。
这是解决此问题的另一种方法,它需要对代码进行较少的更改:
由于我很确定从名称来看这letter
将是一个string
长度1
,您可以将您的switch
语句更改为 access letter[0]
,这将是string
. 您还必须传递letter[0]
给tolower
.
letter
是字符串,所以tolower(letter)
产生一个字符串。但是您的情况是字符('a')。此外,在 C/C++ 中不可能将 switch 用于字符串。改用这一行:
switch( tolower(letter.data[0]) )
switch inscrutvion 只接受枚举类型(enum)、chars(char)或整数(int、unsigned、long)
看起来您想使用单个字符。
更改函数的参数:
int Values(string letter)
对此:
int Values(char letter)
该switch
声明将起作用。