我的问题是,我不知道如何将int值转换为char数组char* m_value。我试过用伊藤,但不起作用。itoa(m_val, m_wartosc, 10);,也许还有其他功能可以这样做呢?
Main.cpp
int main(int argc, char *argv[])
{
LargeNumber l1;
LargeNumber l3(172839); //how to convert this int to char*
return 0;
}LargeNumber.h
class LargeNumber{
public:
LargeNumber()
{
m_array = "0"; //zero for no arg.
}
LargeNumber(int val):m_val(val)
{
itoa(m_val, m_array, 10); //doesn't work
//sprintf(m_array, "%d", m_val);
}
LargeNumber(const LargeNumber& p):m_array(p.m_array)
{ } //copy constructor
~LargeNumber(){
delete []m_array; //for object with new
}
public: //should be private
int m_val;
char* m_array;
};发布于 2012-05-28 14:35:15
itoa()的第二个参数需要是内存中的一个足够大的数组,以存储以空结尾的字符串。举个例子:
int number = 172839;
char buffer[10];
itoa(number,buffer,10);发布于 2012-05-28 14:36:17
LargeNumber(int val):m_val(val)
{
std::stringstream stream;
stream << val;
m_array = new char[stream.str().size()];
strcpy(m_array, stream.str().c_str());
}发布于 2012-05-28 14:37:25
首先,必须将数组分配给
m_array = new char[20]在调用iota之前在构造函数中。它不分配内存。
https://stackoverflow.com/questions/10786282
复制相似问题