如何应对这种副作用?

约书亚记
char sign;
cout << "Enter '+' for addition or '-' for subtraction: ";
cin >> sign;
if ( sign != '+' && sign != '-' ) {
     cout << "you can only enter '+' or '-'!\n";
     return 1;
}

如果我输入+32423,则输入仍然是正确的cin(它将通过检查),因为+它将自动设置为sign变量,并且在存在以下情况时也32423将存储到我的下一个变量中:

cin >> number;

我该如何更改代码,使之+32423不正确cin

约瑟夫·曼斯菲尔德

您需要准确确定您需要用户输入的内容以及使其有效的原因。就像要接受输入的来自用户的整条生产线(所以你应该使用它的声音,我std::getlinestd::string),然后你想只接受是完全串"+""-"

std::string sign;
std::getline(std::cin, sign); // Gather input
if (sign != "+" && sign != "-") { // Parse input
  // ...
}
// ...

正如@ H2C03所提到的,将输入和解析分开是个好主意。在这种情况下,解析就像将输入行与字符串"+"进行比较一样简单"-"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

phpDocumentor如何指定副作用?

来自分类Dev

如何记录Java副作用

来自分类Dev

如何清除“意外副作用”

来自分类Dev

如何处理Applicative的副作用?

来自分类Dev

如何通过副作用实现变量增量?

来自分类Dev

如何处理Applicative的副作用?

来自分类Dev

在这种情况下如何访问节点表达响应对象?

来自分类Dev

如何判断(或如何编写)没有副作用的python函数?

来自分类Dev

如何使这种继承在Java中起作用?

来自分类Dev

这种XSS攻击如何发挥作用?

来自分类Dev

在函数式编程中如何避免副作用

来自分类Dev

如何使用观察从ember.js视图副作用dom?

来自分类Dev

Haskell:如何严格控制RWS monad的副作用

来自分类Dev

如何很好地调用带有副作用的属性?

来自分类Dev

如何使用Scala和Mockito测试异步副作用

来自分类Dev

如何处理react / redux中的副作用?

来自分类Dev

调用python Mock时如何运行函数(以获得副作用)?

来自分类Dev

如何判断(或编写)无副作用的python函数?

来自分类Dev

如何解决devtools不必要的副作用

来自分类Dev

如何测试产生误差的方法的副作用

来自分类Dev

我应该如何处理RxJava中的副作用?

来自分类Dev

如何避免计算属性中的意外副作用-VueJS

来自分类Dev

如何在纯函数式编程中产生副作用?

来自分类Dev

如何很好地调用带有副作用的属性?

来自分类Dev

您如何处理CQRS架构中的命令副作用?

来自分类Dev

如何处理react / redux中的副作用?

来自分类Dev

如何测试返回某些内容并具有副作用的函数?

来自分类Dev

Enzyme:如何测试具有 DOM 副作用的组件?

来自分类Dev

在另一个副作用成为反应成分之后如何执行副作用

Related 相关文章

热门标签

归档