C++ C++;-检查有无错误
我有一个while循环,如果用户输入错误,它将重新启动C++ C++;-检查有无错误,c++,cin,C++,Cin,我有一个while循环,如果用户输入错误,它将重新启动 do{ cerr<<"Input the numbers divided by a space"<<endl; cin>>number1>>number2; hiba=(cin.fail() || number1<1 || number1>100 || number2<1 || number2>100); if(fail){
do{
cerr<<"Input the numbers divided by a space"<<endl;
cin>>number1>>number2;
hiba=(cin.fail() || number1<1 || number1>100 || number2<1 || number2>100);
if(fail){
getline(cin, sz);
cerr<<"Wrong input"<<endl;
}
}while(fail);
do{
cerrnumber2;
hiba=(cin.fail()| | number1100 | | number2100);
如果(失败){
getline(cin,sz),;
cerr试试这个
int main()
{
int tanulokszama,versenyekszama;
bool hiba;
string sz;
do{
cerr<<"Adja meg az elsõ sort!"<<endl;
cin>>tanulokszama>>versenyekszama;
hiba=(cin.fail() || tanulokszama<1 || tanulokszama>100 || versenyekszama<1 || versenyekszama>100);
if(hiba){
cin.clear();
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
//getline(cin, sz);
cerr<<"Rossz adatot adott meg!"<<endl;
}
}while(hiba);
}
intmain()
{
国际塔努洛克萨马,versenyekszama;
布尔希巴;
字符串sz;
做{
塞尔沃森耶克萨马;
hiba=(cin.fail()| tanulokszama100 | | versenyekszama100);
国际单项体育联合会(hiba){
cin.clear();
cin.ignore(std::numeric_limits::max(),'\n');
//getline(cin,sz),;
cerr试试这个
int main()
{
int tanulokszama,versenyekszama;
bool hiba;
string sz;
do{
cerr<<"Adja meg az elsõ sort!"<<endl;
cin>>tanulokszama>>versenyekszama;
hiba=(cin.fail() || tanulokszama<1 || tanulokszama>100 || versenyekszama<1 || versenyekszama>100);
if(hiba){
cin.clear();
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
//getline(cin, sz);
cerr<<"Rossz adatot adott meg!"<<endl;
}
}while(hiba);
}
intmain()
{
国际塔努洛克萨马,versenyekszama;
布尔希巴;
字符串sz;
做{
塞尔沃森耶克萨马;
hiba=(cin.fail()| tanulokszama100 | | versenyekszama100);
国际单项体育联合会(hiba){
cin.clear();
cin.ignore(std::numeric_limits::max(),'\n');
//getline(cin,sz),;
cerr您应该使用和函数清除流并忽略任何内容,直到'\n'
试试这个:
do{
cerr<<"Adja meg az elsõ sort!"<<endl;
cin>>tanulokszama>>versenyekszama;
hiba=(cin.fail() || tanulokszama<1 || tanulokszama>100 || versenyekszama<1 || versenyekszama>100);
if(hiba){
cin.clear();//clear the error flags of the stream
cerr<<"Rossz adatot adott meg!"<<endl;
cin.ignore( 256, '\n');//ignore until '\n'
}
}while(hiba);
do{
塞尔沃森耶克萨马;
hiba=(cin.fail()| tanulokszama100 | | versenyekszama100);
国际单项体育联合会(hiba){
cin.clear();//清除流的错误标志
cerr您应该使用和函数清除流并忽略任何内容,直到'\n'
试试这个:
do{
cerr<<"Adja meg az elsõ sort!"<<endl;
cin>>tanulokszama>>versenyekszama;
hiba=(cin.fail() || tanulokszama<1 || tanulokszama>100 || versenyekszama<1 || versenyekszama>100);
if(hiba){
cin.clear();//clear the error flags of the stream
cerr<<"Rossz adatot adott meg!"<<endl;
cin.ignore( 256, '\n');//ignore until '\n'
}
}while(hiba);
do{
塞尔沃森耶克萨马;
hiba=(cin.fail()| tanulokszama100 | | versenyekszama100);
国际单项体育联合会(hiba){
cin.clear();//清除流的错误标志
请翻译成英语,写下你所说的“它起作用”是什么意思。请翻译成英语,写下你所说的“它起作用”是什么意思。如果已经为您解决了问题,请不要忘记将其标记为“答案”。但是现在,如果两个数字都低于0或高于100,则在再次请求输入后,我必须按enter键两次。如果删除getline,则它适用于错误的数字,但不适用于字符。它会启动无限循环。我更改了代码,尝试新的,它不会进入infini如果两个输入都是字符,那么它会输出“Adja meg az elsõsort!”和“Rossz adatot adott meg!”两次。如果已经为您解决了问题,请不要忘记将其标记为“答案”。但是现在,如果两个数字都低于0或高于100,则在再次请求输入后,我必须按enter键两次。如果删除getline,则它适用于错误的数字,但不适用于字符。它会启动一个无限循环。我更改了代码,尝试新的,它不会进入如果两个输入都是字符,那么它会打印两次“Adja meg az elsõsort!”和“Rossz adatot adott meg!”。