为什么在此代码中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;
}
答案 0 :(得分:3)
b
是char
,但在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;
}