【问题标题】:Why atoi function can't convert const char * to int?为什么 atoi 函数不能将 const char * 转换为 int?
【发布时间】:2012-11-10 19:26:43
【问题描述】:

为什么在这段代码中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;
}

【问题讨论】:

    标签: c++ atoi


    【解决方案1】:

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

    应该是这个cout&lt;&lt;"\n"&lt;&lt;a;而不是这个cout&lt;&lt;"\na"因为后面的不会打印a的值

    【讨论】:

      【解决方案2】:

      你可以在这里看到atoi

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

      int atoi ( const char * str );
      

      否则,如果是char,只能转换'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;
      }
      

      【讨论】:

        猜你喜欢
        • 2010-09-09
        • 2015-11-23
        • 2013-03-20
        • 2015-01-31
        • 1970-01-01
        • 2015-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多