迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

使用 C++ 在 While 循环中输入字符

作者:迹忆客 最近更新:2023/08/19 浏览次数:

这个简单的文章将讨论在 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;
}

输出:

使用 while cin 接受多个输入,直到用户输入一些无效数据

提示用户输入一个值,我们输入了值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 的值。

输出:

使用 while cin 接受多个输入,直到用户输入一些无效数据 2

一旦输入了错误的数据,循环不会立即中断,而是在一次迭代之后中断。

一旦与 cin 关联的标准输入流进入错误状态,就无法进行进一步的输入,直到该状态未重置为良好状态。 我们可以使用 cin.clear() 函数清除 cin 的无效状态,并使用 cin.ignore(numeric_limits::max(), '\n') 函数清除流中的无效输入。

这将使我们能够在不中断执行的情况下重新获取用户的输入。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Arduino 中停止循环

发布时间:2024/03/13 浏览次数:444 分类:C++

可以使用 exit(0),无限循环和 Sleep_n0m1 库在 Arduino 中停止循环。

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()函数在串口监视器上显示变量值。

Arduino if 语句

发布时间:2024/03/13 浏览次数:123 分类:C++

可以使用 if 语句检查 Arduino 中的不同条件。

Arduino ICSP

发布时间:2024/03/13 浏览次数:214 分类:C++

ICSP 引脚用于两个 Arduino 之间的通信以及对 Arduino 引导加载程序进行编程。

使用 C++ 编程 Arduino

发布时间:2024/03/13 浏览次数:127 分类:C++

本教程将讨论使用 Arduino IDE 在 C++ 中对 Arduino 进行编程。

Arduino 中的子程序

发布时间:2024/03/13 浏览次数:168 分类:C++

可以通过在 Arduino 中声明函数来处理子程序。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便