将字符串转换为int问题

问题描述 投票:0回答:2

所以我设法将字符串转换为int。但是,在代码#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,而不是char'<'。谢谢!

编辑:解决了,谢谢大家的帮助。 Noob在这里,道歉!

c++ string int ascii
2个回答
1
投票

这是因为你的price定义:

string price[14];

- 你已经将它定义为一个包含14个字符串的数组,并尝试为数组中的第一个字符串(price[0])分配一个数值(从字符串的角度来看是伪造的)。

一旦您将价格定义为int price[14],那么您将获得您期望的价格


0
投票

price需要定义为整数数组。当您尝试将整数值60存储在price中时,它会隐式转换为(char)60,即ASCII表上的<

© www.soinside.com 2019 - 2024. All rights reserved.