gpt4 book ai didi

c++ - 如何检查用户是否输入了整数

转载 作者:太空宇宙 更新时间:2023-11-04 12:02:18 24 4
gpt4 key购买 nike

如果用户输入的是整数而不是字符或字符串,我需要检查我的程序。字符并没有那么糟糕,因为它实际上是一个整数,但如果用户输入一个字符序列,它就会变得疯狂。

我做了这个功能

int* ask_lung(int* lung)
{
int tmp; // length of a word

cout << "Inserisci la lunghezza della parola da indovinare: ";
cin >> tmp;

if(cin)
{
// Se i è uguale a o minore di 0 allora ritorna all'inizio

if(tmp <= 0)
{
cout << endl << "\tNon puoi inserire 0." << endl << endl;
ask_lung(lung);
}
else
{
// the error is about here, when it reaches this part of the code it keeps showing the first line "Inserisci la lunghezza della parola da indovinare: "
*lung = tmp;
}
}
else ask_lung(lung);

return lung;
}

最佳答案

如果是字符串,您的流包含大量无效字符,您需要将这些字符的流刷新到新状态。与其递归地执行此操作,不如在循环中执行此操作更好。这对你来说足够了。

while(true)
{
cout << "Please Enter an Integer" << endl ;
if (cin >> temp) //true if a leading integer has entered the stream
break ;
else
{
cout << "Invalid Input" << endl ;
cin.clear() ;
cin.ignore(std::numeric_limits<streamsize> :: max(), '\n') ;
}
}

关于c++ - 如何检查用户是否输入了整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13647467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com