所以我设法将字符串转换为整数。但是,在代码 #1 中,当我尝试将其分配给数组中的第一个插槽并将其打印出来时,它会打印"<"。为什么要这样做?我知道这与ascii字符有关。代码 #2 打印出我想要的 int 60。
atoi(menuAttributes[c].c_str()) = 20;
quantity[d] = 3;
string price[14];
#1
price[0] = atoi(menuAttributes[c].c_str()) * quantity[d];
cout << price[0] << endl;
#2
cout << atoi(menuAttributes[c].c_str()) * quantity[d] << endl;
几乎,我希望 price[0] 等于 int 60,而不是字符"<"。谢谢!
编辑:解决了,感谢大家的帮助。菜鸟在这里,道歉!
这是因为你price
定义:
string price[14];
- 您已经将其定义为一个包含 14 个字符串的数组,并试图为数组price[0]
中的第一个字符串分配一个数值(从字符串的角度来看这是假的(。
一旦您将价格定义为 int price[14]
,那么您将得到您所期望的
price
需要定义为整数数组。当你尝试将整数值 60 存储在 price
中时,它被隐式转换为 (char)60
,这在 ASCII 表上<
。