void addItem(char selection) {
double total = 0.0;
qty = 0;
cout << "Enter Qty: ";
cin >> qty;
`else if (selection == '10') {
total = 60 * qty;
cout << "Added to order"<<endl;
Iattotal += total;
Iatqty += qty;
Gtotal += Iattotal;
}
}
main.cpp:93:22: warning: multi-character character constant [-Wmultichar]
93 | if (selection == '10') {
| ^~~~
^~~~
有没有解决这个问题的办法我试着把char改成int,但它没有改变,我试着找到类似的问题,但它没有固定
取决于你想做什么:
以ASCII码的形式读取值,可以写
char a = 'a';
int ia = (int)a;
/*注意int强制转换不是必须的——int ia = a就足够了*/转换字符'0' ->0, '1' ->1、等,可以写
char a = '4';
int ia = a - '0';
/*检查ia是否有0和9 */
出现错误是因为您正在比较"选择"变量,它是一个字符类型,只能保存一个字符,'10'是一个多字符常量。
如果你试图传递一个多字符变量,比如用户输入,你可以考虑使用std:string。
Std::string可以包含多个字符,并且可以使用==操作符进行比较。
或者,您可以将类型更改为char *——这就是c-string通常的定义方式。c - string以空结束,表示字符串的结束。
如果使用c字符串,则需要使用标准库函数(如strcmp)将值与常量进行比较。当两个字符串相等时STRCMP返回0。
在处理c-string时,必须小心不要读取超出缓冲区或数组的大小。为了安全起见,最好使用strncmp,其中可以指定要比较的最大字符数。