typeconverter — C ++ преобразование строки в int по одному символу за раз

Основная программа для создания случайного числа свыше 10000, а затем распечатывает число в формате слова.

Проблема в том, что для eNum=atoi(Result[i]); строка я получаю сообщение об ошибке компилятора о переменной std::string

Error:argument of type "char" is incompatible with parameter of type "const char*"

Что это значит? Я думал, что беру один char и превращая его в int,

#include <iostream>
#include <stdlib.h>
#include <sstream>
#include <string>
using namespace std;enum Numbers {Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Point } eNum;

void main(void)
{
int iRnd, iTemp;
string Result;
iRnd = rand() %  (sizeof(int)-10000) + 10000;
ostringstream convert;
convert << iRnd;
Result = convert.str();

cout << "\nRandmon number is: " << iRnd << endl << "Converted Number is : " << Result << endl;

for (int i=0;i<Result.length();i++)
{
eNum = atoi(Result[i]);
cout << eNum;
system("pause");
}
}

0

Решение

atoi() Функция ожидает строку C. Либо избавьтесь от всего кода и используйте

int num = atoi(someString.c_str());

для преобразования или в вашем коде измените

eNum = atoi(result[i]);

в

eNum = result[i] - '0';
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]