为什么在这段代码中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;
}
b
是char
,但atoi()
你必须通过char *
,或者const char *
因为 c++ 是严格的类型检查语言,所以你得到了这个
应该是这样cout<<"\n"<<a;
而不是这样cout<<"\na"
,因为后面的不会打印 a 的值
正如你在这里看到的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;
}