基本程序,用于创建超过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 :(得分:4)
atoi()
函数需要一个C字符串。要么摆脱整个代码并使用
int num = atoi(someString.c_str());
进行转换,或在代码中更改
eNum = atoi(result[i]);
到
eNum = result[i] - '0';