gpt4 book ai didi

c++ - 一个很好的、简单的、可移植的解决方案,用于在 C++ 中等待直到按下输入

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:30 26 4
gpt4 key购买 nike

为什么不是这个?

cin.ignore (getchar(),'\n');

我不是专业的程序员,勉强算得上业余,但这是我的小小努力。
在仔细研究了网络上所有可能简单、便携且易于理解的解决方案(特别是对于像我这样的新手)之后,我还没有看到任何真正可以接受的(特别是对于像我这样的新手)。
在多次失败的尝试之后,我写下了这一行。它奏效了!
对我来说,这听起来像是一个非常优雅的解决方案。
我的意思是:它只是一行代码,很容易记住,它不需要任何进一步声明的变量,你不必进入太多的抽象来理解它。
在我尝试过的每种情况下,它都有效。
如果这不是一个好的解决方案,是否有人愿意解释一下?

[编辑]

谢谢大家的正确回答。但无论是我还是你都没有捕获要点。我想问的不是我发布的解决方案是否有效,因为它有效!至少在我的电脑上,以及我正在处理的所有可执行文件中(我不想看起来很固执,你们自己试试看是否能从我这里夺走信用。我使用它的一个例子在最后)。你所说的副作用都没有出现。该行回答了我的第一个输入,它只回答了一个输入——而不是“任何”字符。我担心的是我在任何地方都没有看到它的写法,并且认为自己是最贫穷的程序员,令我惊讶的是我从头开始找到了解决方案。

short WaitForEnter ()
{
cout << "Press ENTER to continue\n";
cin.ignore (getchar(),'\n');
return 0;
}

最佳答案

让我们看看忽略的定义:

istream& ignore (streamsize n = 1, int delim = EOF);

提取和丢弃字符从输入序列中提取字符并丢弃它们,直到提取了 n 个字符,或者一个比较等于 delim。

如果到达文件末尾,该函数也会停止提取字符。如果过早达到(在提取 n 个字符或找到 delim 之前),该函数将设置 eofbit 标志。

因此,您的代码行将等待您在控制台中输入一个字符(任何字符)而不是输入 (\n);

关于c++ - 一个很好的、简单的、可移植的解决方案,用于在 C++ 中等待直到按下输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19979143/

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