gpt4 book ai didi

C++ |在不提供值的情况下接受用户输入

转载 作者:行者123 更新时间:2023-11-30 02:25:44 25 4
gpt4 key购买 nike

我可以看出标题可能有点困惑。基本上我希望用户按回车键 10 次以结束循环。但是我实际上必须输入一些内容才能计数,我认为这是因为我给了“无用”数据类型 char,但是我应该给它分配什么以便我只需按 enter 键就可以了?谢谢!

void mineFunc(){
//Mining Function
int durability = 10;
char useless; //Just so user can tap enter to 'mine'
cout << "Tap Enter to Mine" << endl;
do {
cin >> useless;
durability -= 1;
cout << "Durability: " << durability << endl;
} while (durability > 0);
gold += 5;

}

最佳答案

好吧,你可以使用 IO 操纵器 std::noskipws在流中,但由于它是 cin,您可能不希望将其保留在该状态。而且您必须保存/恢复以前的状态才能与程序的其他部分一起玩。

更简单的方法是按如下方式循环:

while( cin && cin.get() != '\n' );

现在,如果流失败,您想跳出循环。你可能想把它包装得更好一点:

istream & wait_enter( istream & s )
{
while( s && s.get() != '\n' );
return s;
}

那么你有:

do {
if( !wait_enter(cin) ) break;
durability -= 1;
cout << "Durability: " << durability << endl;
} while (durability > 0);

由于 IO 操纵器的工作方式,您甚至可以这样做(如果您喜欢那种风格):

    if( !(cin >> wait_enter) ) break;

关于C++ |在不提供值的情况下接受用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43816632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com