等待被提取到变量
来源:互联网 发布:广东尚趣网络怎么样 编辑:程序博客网 时间:2024/04/27 18:24
大多数程序都有一个用户界面的某种需要处理用户输入。在项目中,你一直在写,你一直在使用std::cin要求用户输入文本输入。由于文本输入是如此的自由形式(用户可以输入任何东西),所以很容易为用户输入不期望的输入。
在这节课中,我们来看看具体的办法,用户可以通过标准输入无效的文本输入::CIN,并告诉你一些不同的方式来处理这些情况。
std::cin,缓冲,和提取
当我们使用操作符来获取用户输入,并把它变成一个变量时,这被称为“提取”。在此上下文中使用时,相应地调用了提取运算符。
当用户输入响应提取操作输入,数据被放置在一个缓冲区::性病在CIN。一个缓冲区(也称为数据缓冲区)只是一个暂时的存储数据的内存块,而它从一个地方移动到另一个地方。在这种情况下,缓冲区是用来保存用户输入的,而它的等待被提取到变量。
当使用提取运算符时,下面的过程会发生:
12int x;std::cin >> x;
一些图形用户界面和先进的文本界面会让你验证输入的用户进入(按字符)。一般来说,程序员提供了一个验证函数,接受输入的用户已输入到目前为止,并返回真实,如果输入是有效的,否则。每当用户按下一个键时,这个函数就被调用。如果验证函数返回真值,则用户只需按下“确认”键就可以了。如果验证函数返回错误,用户只输入的字符将被丢弃(而不是在屏幕上显示)。使用这种方法,你可以确保任何输入用户输入是保证是有效的,因为任何无效的按键是发现并立即丢弃。不幸的是,std::cin不支持这种风格的验证。
由于字符串没有什么限制,可以输入任何字符,提取是保证成功(虽然记得std::cin停止提取在第一个非空格字符)。一旦输入一个字符串,该程序可以分析字符串,看看它是否有效。然而,分析字符串和转换字符串输入到其他类型(例如数字)可以是具有挑战性的,所以这只是在罕见的情况下完成的。
通常,我们让std::cin和提取算子做艰苦的工作。在这种方法下,我们让用户输入他们想要的任何东西,有std::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;}
0 0
- 等待被提取到变量
- ,而它等待被提取到变量
- 而它等待被提取到变量
- 根据模板提取变量
- [Linux.Shell] 变量提取
- Android Studio 提取全局变量、提取局部变量、提取方法快捷键
- 二进制文件提取到数组
- linux shell 提取变量 变量传参
- 图片提取文字到word
- 提取系统时间到毫秒
- hive提取数据到本地
- ftp提取文件到hdfs
- wait时间到或被中断唤醒时,仍然需要等待获取锁。
- 提取数据的变量信息content
- MFC字符串分割提取给一个变量
- sql 正确提取变量数据的方式
- 知易行难——从“等待”到“穿越”
- 等待
- jenkins 常用插件
- 移动站适配rel=alternate PC页和H5页适配标注
- MySql如何对聚合函数count()查询的结果再次利用count()统计
- 兄弟会第四天笔记
- 基于比较的常用排序算法总结
- 等待被提取到变量
- Linux网络搜集命令
- SocketCAN bug记录
- MULTI PROVIDERS IN ANGULAR 2
- 第一行代码系列第二章——在activity中使用Toast
- 约瑟夫问题(Josephus)
- 钓鱼破解Wi-Fi密码
- solr学习四solr定时增量更新
- Eclipse 常用讲解