今天我在uni参加了我的第一个“编程基础”实验室课程。不过,有一件事让我感到奇怪:使用conio.h中的while(! _kbhit()) (我确信它是一个C单元?)“暂停”控制台输出。
这是最好的方法吗?使用时需要注意什么?我的导师是不是完全疯了?我之所以这样问,是因为它看起来像是一个肮脏的技巧,而且我以前从未在我看过的任何C++代码片段中看到过它。
将问题标记为家庭作业,因为它与学校相关,但实际上不是家庭作业。如果这个问题作为CW更好,请让我知道。
发布于 2010-09-30 07:29:03
一种非常快捷(且易于记忆)的方法是使用getchar
getchar();根据stdin的缓冲模式,你可能需要在输入字符后按Return键,你可能可以使用setvbuf来解决这个问题,但我个人总是按Return键。
您也可以使用C++ iostreams。在这种情况下,您需要在某个地方调用它:
std::ios::sync_with_stdio(true);发布于 2010-09-30 07:16:06
使用conio.h (或者更糟,使用system调用pause或类似的实用程序)通常不是一个好主意;它的可移植性不是很好。相反,您可以使用cin的功能
#include <iostream>
#include <limits>
/* Either of these would work, AFAIK */
void pause() {
std::cin.ignore(std::numeric_limits<std::streamsize>::max());
std::cin.get();
}
void pause() {
std::cin.ignore(std::cin.rdbuf()->in_avail());
std::cin.get();
}
void pause() {
std::cin.sync();
std::cin.get();
}https://stackoverflow.com/questions/3826524
复制相似问题