Основная программа для создания случайного числа свыше 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");
}
}
atoi()
Функция ожидает строку C. Либо избавьтесь от всего кода и используйте
int num = atoi(someString.c_str());
для преобразования или в вашем коде измените
eNum = atoi(result[i]);
в
eNum = result[i] - '0';
Других решений пока нет …