使用 C++ 在 While 循环中输入字符
这个简单的文章将讨论在 C++ 中处理输入。 此外,我们将研究处理用户无效输入的问题。 最后,我们将讨论如何使用 while 循环从用户处获取输入。
首先,应该了解 C++ 中从用户获取输入数据的过程。 C++中的iostream库为我们提供了cin函数。 它将获取用户的输入并将值存储在所使用的变量中。
代码示例:
int x;
cin>>x;
在此代码中,x 是在第 1 行声明的整型变量,并在第 2 行进行输入。cin 将提示用户输入数据并将该数据存储在变量 x 中。 该值必须是整数值; 否则,该值将部分保存在 x 中或不保存。
在 C++ 中使用 while 循环和 cin 函数
考虑另一个例子,我们想要接受多个输入,直到用户输入一些无效数据。 如果输入了一些无效数据,则应关闭输入。
代码:
int main()
{
int a;;
while(cin >> a){
cout<<"You entered the correct input value"<<endl;
}
cout<<"Sorry, you have entered wrong type of data."<<endl;
}
输出:
提示用户输入一个值,我们输入了值2,这是一个int值。 因此,循环继续迭代,并再次提示用户。
经过三次尝试,我们输入了一些非 int 类型的字符(即 abc)。 这会导致标准输入流(与 cin 关联)被破坏,并且表达式 cin >> a 返回 false。
因此,循环中断并且控制转移到循环外的线路。 我们可以通过这种方式限制一些无效数据的输入。
下一个示例显示了实现相同任务的另一种方法。
代码:
int main()
{
int a;;
while(cin){
cin>>a;
cout<<"You entered the correct input value"<<endl;
}
cout<<"Sorry, you have entered a wrong type of data."<<endl;
}
我们应该知道cin有四种状态,分别是good、bad、fail、EOF。 运行上面的代码时,cin 处于良好状态。
我们使用 cin 作为循环条件。 当代码开始执行时,cin 将处于良好状态并返回 true。
因此,while 循环将执行并提示用户输入 a 的值。
输出:
一旦输入了错误的数据,循环不会立即中断,而是在一次迭代之后中断。
一旦与 cin 关联的标准输入流进入错误状态,就无法进行进一步的输入,直到该状态未重置为良好状态。 我们可以使用 cin.clear() 函数清除 cin 的无效状态,并使用 cin.ignore(numeric_limits
这将使我们能够在不中断执行的情况下重新获取用户的输入。
相关文章
Arduino 复位
发布时间:2024/03/13 浏览次数:315 分类:C++
-
可以通过使用复位按钮,Softwarereset 库和 Adafruit SleepyDog 库来复位 Arduino。
Arduino 的字符转换为整型
发布时间:2024/03/13 浏览次数:181 分类:C++
-
可以使用简单的方法 toInt()函数和 Serial.parseInt()函数将 char 转换为 int。
Arduino 串口打印多个变量
发布时间:2024/03/13 浏览次数:381 分类:C++
-
可以使用 Serial.print()和 Serial.println()函数在串口监视器上显示变量值。