Превращение строки в задачи int - PullRequest
0 голосов
/ 26 апреля 2019

Итак, мне удалось преобразовать строку в int.Однако в коде № 1, когда я пытаюсь назначить его первому слоту в массиве и распечатать его, он печатает «<».Почему он это делает?Я знаю, что это как-то связано с персонажами ascii.Код № 2 выводит на экран int 60, что я и хочу.</p>

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;

В общем, я хочу, чтобы цена [0] равнялась int 60, а не символу '<'.Спасибо! </p>

РЕДАКТИРОВАТЬ: Решено, спасибо за помощь всем.Нуб здесь, извинения!

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

это из-за вашего price определения:

string price[14];

- вы определили его как массив из 14 строк и пытаетесь присвоить первой строке в массиве (price[0]) числовое значение (которое является фиктивным с точки зрения строки).

Как только вы определите свою цену как int price[14], вы получите то, что ожидаете

0 голосов
/ 26 апреля 2019

price должен быть определен как целочисленный массив. Когда вы пытаетесь сохранить целочисленное значение 60 в price, оно неявно преобразуется в (char)60, то есть < в таблице ASCII.

...