- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一个新手程序员,正在练习下面的这个程序。无论出于何种原因,在我的程序结束时,cin.ignore() 被编译器完全跳过并直接移动到 cin.get(),但是之前已经有一个按键,所以编译器完全跳过它并且无需等待按键即可完成程序。我试过将 cin.get() 和 cin.ignore() 放在 switch case 语句中,但出现了同样的错误。我在网上搜索了这个问题,但找不到与我的问题相关的任何内容。这是我的完整代码:
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
class mobs
{
public:
mobs();
~mobs();
void define();
void dismi();
void getinfo();
int stat[2];
string name;
string bio;
protected:
int health;
int level;
};
mobs dragon;
mobs::mobs()
{
int stat[2];
}
mobs::~mobs()
{
}
int selection;
void mobs::dismi()
{
getinfo();
cout<<"Level:" <<level<<"Health:" <<health <<endl <<endl <<endl <<"Name:" <<name <<"Bio:" <<bio <<endl <<endl;
}
void mobs::getinfo()
{
define();
}
void mobs::define()
{
stat[0] = health;
stat[1] = level;
}
int main()
{
dragon.stat[0] = 100;
dragon.stat[1] = 13;
dragon.name = "Ethereal Dragon, Dragon of the plane";
dragon.bio = "A dragon that can only be found in the ethereal plane.This dragon has traditional abilites such as flight and the ability to breath fire. The Ethereal Dragon's other known abilites are teleportation or magic.";
cout<<"Welcome to the Mob Handbook. " <<endl <<endl <<"Please make a selection "<<endl;
cout<<"1.Ethereal Dragon" <<endl<<"2." <<endl<<endl <<">";
cin>>selection;
cin.ignore();
switch(selection)
{
case 1:
dragon.dismi();
break;
default:
cout<<"Invalid input";
break;
}
cin.ignore();
cin.get();
}
最佳答案
You are reading from an istream
without checking the result , 这是一个反模式。
您应该检查 cin >> selection
的结果以查看是否可以从流中读取 int
。如果不能,则 cin
流将处于错误状态,进一步尝试从中读取将立即返回,而不是阻塞等待输入。
if (cin>>selection)
{
switch (selection)
{
// ...
}
}
else
throw std::runtime_error("Could not read selection");
如果您添加该检查,您至少可以排除流错误,并可以尝试进一步调试。
关于c++ - Cin.get() 不等待按键,即使在它之前有 cin.ignore(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35470658/
根据我的理解,INSERT IGNORE 插入一个新条目,如果它不存在,如果存在,则忽略它。所以我已经尝试这样做了一段时间,但似乎没有用。这是我的尝试: insert insert ignore in
出于某种奇怪的原因,StyleCop 不尊重我的文档规则设置。考虑以下代码: internal class SomeClass { public SomeClass() { }
我有一个带有字符串参数和 bool 返回值的方法。我想确保它总是返回 true 我试过了 myClass.Foo(A.Ignored) .WithReturnType() .Returns(tru
这个问题在这里已经有了答案: Filter invoke twice when register as Spring bean (2 个答案) 关闭 1 年前。 我们正面临 SpringSecuri
将 iconv 与 //TRANSLIT//IGNORE 一起使用从 utf8 转换为 ascii 工作正常;它根据当前语言环境(在我的情况下为 de_DE)将不可转换的字符替换为正确的音译: > e
我有这样的查询: $query="INSERT IGNORE INTO mytable (key, word1, word2) VALUES (1, 'abc', 'def')"; 如果因为主键已经存
我有一个 MySQL 表,如下所示: `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `company_id` int(8) unsigned NOT N
git blame --ignore-revs-file显然是现代 Git 中存在的一个选项。 只有一个问题。它不起作用。 或者至少,它对我不起作用: 您可以将其添加到 shell 脚本中: mkdi
使用docker stack deploy,我可以看到如下信息: Ignoring unsupported options: restart 是否意味着重启政策没有到位? 是否必须在撰写文件之外指定它
我正在尝试检查被 git 忽略的文件,我发现 2 个命令显示相同的结果。 哪个是 git check-ignore * git ls-files --others --ignored --exclud
我想为我的 bash 设置和插件等创建一个 git 仓库。我忽略了所有内容(第 0 行),然后在 repo 中手动添加了我想要的文件/文件夹。 (我必须这样做,因为 repo 在我的 ~ 文件夹中。)
我们有一个集中式开发服务器,每个人都在本地结账处工作。我们如何仅忽略本地存储库中的特定目录,而不忽略集中存储库中的特定目录? 一些背景资料: 该项目是一个Drupal站点,该站点的文件目录一直在变化。
当我向 svn:ignore 条目添加一些东西时,它是存储在存储库中还是存储在我的本地副本中? (在 Tortoise 中,为什么添加到 svn:ignore 的项目会出现在我的更改列表中?) 最佳答
我想确保当我从 svn 结帐时,某些 ide 项目元数据文件没有更新。不幸的是,在创建项目时它已被 checkin 项目,但我有我自己的这些文件版本。 svn:ignore 是否也会在更新期间忽略文件
我有一个目录,其中包含具有各种扩展名的文件。我想在 svn:ignore 中执行与以下 .gitignore 代码等效的操作: *.* # ignore everything !.htaccess #
我在实时服务器上有一个大型项目,我想将其提交给 svn 存储库。我已使用 svn add 将所有文件和目录添加到存储库中. 问题是我想提交一个文件夹结构,但没有它的内容。文件夹名称是: /home/m
当我使用 svn:ignore 从 SVN 中排除文件时然后另一个人尝试提交排除的文件, svn 阻止他?或者他必须在他的电脑上执行相同的命令? 最佳答案 想象一下,如果您有一堆 Java 文件( *
如果已经有一个带有_id的文档,是否可以不重新索引文档?也许像MySQL中的INSERT IGNORE查询一样? 我使用批量API,并且重新索引需要很长时间,因此我只想索引丢失的文档。 可能吗? 最佳
我的房间有问题。 我正在使用带有 Gson 转换器的改造作为其余 api,我想与房间分享 pojos。一般来说它可以工作,但在某些情况下我需要忽略一些字段,因为我有对象列表。我尝试使用 @Ignore
我正在使用 vba 代码从数组中查找值。有些结果是“#N/A”,并且单元格的左上角会出现一个绿色三角形。我想自动删除绿色三角形(忽略错误),但“#N/A”结果应该保留,只需删除绿色三角形即可。 有人知
我是一名优秀的程序员,十分优秀!