为什么atoi函数不能将const char *转换为int?

时间:2012-11-10 19:26:44

标签: c++ atoi

为什么在此代码中atoi()函数无法正常工作,为什么编译器会出现此错误:

  

初始化`int atoi(con​​st char *)'

的参数1

我的代码如下:

#include <iostream.h>
#include <stdlib.h>
int main()
{
    int a;
    char b;
    cin >> b;
    a = atoi(b);
    cout << "\na";  
    return 0;
}

2 个答案:

答案 0 :(得分:3)

bchar,但在atoi()中,您必须通过char *const char *,因为c ++是严格的类型检查语言,因此您得到了这个

应该是这个cout<<"\n"<<a;而不是cout<<"\na",因为后者不会打印

的值

答案 1 :(得分:3)

正如您在此处所见atoi

Atoi收到一个指向char的指针,而不是像你那样的char。 这是有道理的,因为通过这种方式,您可以将atoi应用于具有多个1位数的“数字”(以字符串表示),例如atoi(“100”);

int atoi ( const char * str );

否则,如果它是一个字符,你只能转换'0','1','2'..'9'。

编辑:试试这个例子:

#include <iostream>
#include <stdlib.h>
int main()
{
    int a;
    char b[10];


    cin >> b;
    a = atoi(b);

    cout<<"\n"<<a; 
    return 0;
}