3

为什么在这段代码中atoi()函数不能正常工作,为什么编译器会给出这个错误:

初始化 `int atoi(const char*)' 的参数 1

我的代码如下:

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

2 回答 2

3

bchar,但atoi()你必须通过char *,或者const char *因为 c++ 是严格的类型检查语言,所以你得到了这个

应该是这样cout<<"\n"<<a;而不是这样cout<<"\na",因为后面的不会打印 a 的值

于 2012-11-10T19:29:41.153 回答
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;
}
于 2012-11-10T19:32:23.283 回答