C++求大佬

JAY CC 2020-08-30 01:48:42
为什么输入一个字符的时候会显示,输入正确而不是死循环呢,求C++大佬
...全文
231 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JAY CC 2020-09-15
  • 打赏
  • 举报
回复
引用 5 楼 棉猴的回复:
可以加一个判断,来确保输入的是数字。 《C++控制台程序判断输入的数字》 希望能够帮到您!
感谢感谢😊
JAY CC 2020-09-13
  • 打赏
  • 举报
回复
引用 3 楼 qq_40162781的回复:
你使用的是整形,std::cin>>num这里失败了。所以不能确定num的值
懂了,谢谢
棉猴 2020-09-13
  • 打赏
  • 举报
回复
可以加一个判断,来确保输入的是数字。 《C++控制台程序判断输入的数字》 希望能够帮到您!
qq_40162781 2020-09-11
  • 打赏
  • 举报
回复
你使用的是整形,std::cin>>num这里失败了。所以不能确定num的值
JAY CC 2020-08-30
  • 打赏
  • 举报
回复
引用 1 楼 alittlenewbiek的回复:
#include <iostream>
int main()
{
int a = -1;
std::cin >> a; // 运行时分别给1和a
std::cout << "a = " << a << std::endl;
std::cout << "istream flag : " << std::cin.fail() << std::endl;
}

当cin读取失败后,你不能期待a的值是什么,
此时正巧是0,所以进行if statement。

解决方法:
把cin放入if中,如
if (cin >> a)
{
// what to do if succeed
}
else
{
// what to do if fail
}
哈哈哈,有点思路了,但还是没太明白,感谢
alittlenewbiek 2020-08-30
  • 打赏
  • 举报
回复
#include <iostream>
int main()
{
int a = -1;
std::cin >> a; // 运行时分别给1和a
std::cout << "a = " << a << std::endl;
std::cout << "istream flag : " << std::cin.fail() << std::endl;
}

当cin读取失败后,你不能期待a的值是什么,
此时正巧是0,所以进行if statement。

解决方法:
把cin放入if中,如
if (cin >> a)
{
// what to do if succeed
}
else
{
// what to do if fail
}

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧