,而它等待被提取到变量

大多数有某种用户界面的程序需要处理用户输入。在项目中,你一直在写,你一直在使用std::cin要求用户输入文本输入。因为文本输入是自由格式的(用户可以输入任何东西),所以用户很容易输入不期望的输入。
在编写程序时,应始终考虑用户将如何(无意或以其他方式)滥用程序。一个写得很好的程序会预见用户会如何滥用它,或者是优雅地处理这些情况,或者防止它们发生在第一位(如果可能的话)。一个程序,处理错误的情况下,据说是强大的。
在这节课中,我们来看看具体的办法,用户可以通过标准输入无效的文本输入::CIN,并告诉你一些不同的方式来处理这些情况。
std::cin,缓冲,和提取
为了探讨std::cin和运算符> >可以失败,它首先有助于了解它们是如何工作的一点点。
当我们使用运算符来获取用户输入并将其输入变量时,这称为“提取”。运算符在此上下文中使用,因此称为提取运算符。
当用户输入响应提取操作输入,数据被放置在一个缓冲区::性病在CIN。缓冲区(也称为数据缓冲区)仅仅是一块内存,用来暂时存储数据,而它是从一个地方移动到另一个地方的。在这种情况下,缓冲区被用来保存用户输入,而它等待被提取到变量。

使用提取运算符时,会发生下列过程:

#include <iostream>
 
double getDouble()
{
    std::cout << "Enter a double value: ";
    double x;
    std::cin >> x;
    return x;
}
 
char getOperator()
{
    std::cout << "Enter one of the following: +, -, *, or /: ";
    char op;
    std::cin >> op;
    return op;
}
 
void printResult(double x, char op, double y)
{
    if (op == '+')
        std::cout << x << " + " << y << " is " << x + y << '\n';
    else if (op == '-')
        std::cout << x << " - " << y << " is " << x - y << '\n';
    else if (op == '*')
        std::cout << x << " * " << y << " is " << x * y << '\n';
    else if (op == '/')
        std::cout << x << " / " << y << " is " << x / y << '\n';
}
 
int main()
{
    double x = getDouble();
    char op = getOperator();
    double y = getDouble();
 
    printResult(x, op, y);
 
    return 0;
}

在这种情况下,我们要求用户输入四个符号中的一个,但他们输入了“k”代替。“K”是一个有效的字符,因此std::cin愉快地提取它变量运算,这会返回到主。但我们的程序不希望这种情况发生,所以它不妥善处理这种情况下(因此从来没有输出任何东西)。
这里的解决办法很简单:做输入验证。这通常包括3个步骤:
1)检查用户输入是否是你所期望的。
2)如果是这样,返回值给用户。
3)如果没有,告诉用户出错了,让他们再试一次。
这是一个更新的getoperator()功能,并输入验证。

Halcon 是一款强大的工业视觉软件,它主要用于自动化设备和机器人系统的视觉处理任务。在 Halcon 中,用户可以创建、编辑并运行程序,其中涉及到对变量的处理和监控是非常常见的操作。 ### Halcon 变量监视的基本流程: 1. **变量声明**:在 Halcon 程序中首先需要声明变量以便于存储数据。例如,你可以创建一个图像变量来保存从摄像头获取的数据,或者定义一个数变量来记录某个检测结果。 2. **赋与操作**:一旦声明了变量,就可以对其进行赋操作,并通过各种函数和运算符来进行复杂的数学计算或者图像处理。Halcon 提供了大量的内置函数,用于像素提取、形状分析、颜色转换等。 3. **监视与调试**:为了确保程序的正确性和优化性能,监视变量成为了一个重要的步骤。Halcon 提供了一系列工具帮助用户检查和修改变量的内容。这包括但不限于查看变量的实时状态、历史变化以及设置断点以追踪程序执行过程中的变量。 4. **集成与可视化**:通常,监视功能会整合到 Halcon 的图形界面中,使得用户能够直观地看到变量的变化情况。例如,在 HDevelop (Halcon的高级开发环境) 的调试视图中,可以观察到变量的当前、数据类型及更新频率。 ### 实现变量监视的具体步骤: 1. **打开 HDevelop**:启动 HDevelop 软件,这是 Halcon 的高级开发环境,提供丰富的工具支持和更便捷的编程体验。 2. **编写脚本**:在项目管理窗口中新建或加载一个项目,然后在工作区域编写 Halcon 脚本,声明并操作所需的变量。 3. **启用调试模式**:通过菜单选择“调试”->“开始调试”,或者点击调试工具栏上的调试按钮来开启调试模式。此时,HDevelop 会自动插入断点,暂停程序执行等待进一步操作。 4. **观察变量**:在调试模式下,可以利用“监视面板”或者直接在代码中添加 `Print` 函数来输出变量的当前。此外,还可以通过右键菜单选择特定的变量,将其加入到监视列表中,这样在程序执行过程中该变量的实时就会显示出来。 5. **调整与测试**:根据监视到的信息,可以调整算法参数、改进代码逻辑或是修正错误,直到达到预期的效果。 6. **结束调试**:完成调试后,可以停止调试模式,继续运行完整程序,或者选择“调试”->“结束调试”。 ### 相关问题: 1. Halcon如何进行变量声明和赋? 2. 在HDevelop中如何有效地进行代码调试和变量监视? 3. Halcon中有哪些常用的变量类型及其应用场景?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值