为什么在这段代码中,atoi()
函数不能正常工作?编译器为什么会出现如下错误:
初始化参数1时出错:`int atoi(const char*)'
以下是我的代码:
#include <iostream.h>
#include <stdlib.h>
int main()
{
int a;
char b;
cin >> b;
a = atoi(b);
cout << "\na";
return 0;
}
您可以在此处查看atoi。
atoi接收char指针,而不是像您所做的那样一个char。 这是有道理的,因为这样您可以将atoi应用于具有多个数字(以字符串表示)的“数字”,例如atoi(“100”);
int atoi ( const char * str );
#include <iostream>
#include <stdlib.h>
int main()
{
int a;
char b[10];
cin >> b;
a = atoi(b);
cout<<"\n"<<a;
return 0;
}
b
是一个char
类型,但在atoi()
中,你必须传入char *
或者const char *
。因为c++是一种严格的类型检查语言,所以你会遇到这个问题。
应该像这样书写:cout<<"\n"<<a;
而不是这样:cout<<"\na"
,因为后者不会打印出a的值。