atoi问题
#include<iostream>#include<cstdlib>
#include<cctype>
void read_and_clean(int& n);
void new_line();
int main()
{
using namespace std;
int n;
char ans;
do
{
cout<<"enter the number:\n";
read_and_clean(n);
cout<<"the cleam number is:"<<n<<endl;
cout<<"Angin?(yea/no)";
cin>>ans;
new_line();
}while((ans!='n')&&(ans!='N'));
return 0;
}
void read_and_clean(int& n)
{
using namespace std;
const int ARRAP_SIZE=6;
char digit_string[ARRAP_SIZE];
char next;
cin.get(next);
int index=0;
while (next!='\n')
{
if((isdigit(next))&&(index<ARRAP_SIZE-1))//在这里isdigit的作用是什么,什么去掉之后输入$100后就返回0而不是100了
{
digit_string[index]=next;
index++;
}
cin.get(next);
}
digit_string[index]='\0';
n=atoi(digit_string);//书上说:如果参数不与一个int值对应 atoi就返回0为什么输入$100时这里反回100而不是0
}
void new_line()
{
using namespace std;
char symbol;
do
{
cin.get(symbol);
}while(symbol!='\n');
}
我是新手希望大虾们能说清楚一点谢谢!