iostream.h中的替代函数用于conio.h的getch()?

Aay*_*ush 21 c++ iostream

我试图按住屏幕上使用头文件我的输出<iostream.h>,但我不知道任何同等功能的getch()clrscr()功能<conio.h><iostream.h>或任何其他C++库.有没有这样的功能?

Ste*_*iss 28

这些conio.h函数是语言的编译器扩展,而不是C或C++的一部分.标准C++没有直接替代品.

对于getch(),int ch = std::cin.get();可能是最接近的等价物 - 但请记住,这将从缓冲的标准输入读取,而我认为conio.h getch执行无缓冲读取.

任何实现clrscr()都将非常依赖于平台 - 并非所有屏幕或终端都具有清除概念,并且那些具有完全不同的方式来访问该功能.

如果您需要将终端视为一组字符流以外的其他内容,最好的办法是寻找一个隐藏底层终端,屏幕或控制台详细信息的库.如果您使用的是UNIXish系统,请查看curses或ncurses库; 我不知道对其他操作系统的任何建议.


Ksh*_*KJ- 8

getch()和clrscr()将适用于C++.包括conio.h

但是,如果你不能(由于某种原因)包括conio.h,

怎么样cin >> dummy_var带有显示消息,要求用户按回车键?

  • +1因为你可以用C和C++做的大多数有趣的事情实际上都不在标准中.这两种标准都不是完整的,并且您可以包含标准强制标题以外的标题这一事实非常符合设计要求. (10认同)

小智 7

只需使用cin.get();


bme*_*ric -24

如果你在 Windows 上工作,你可以使用系统(“暂停”),这会给你“按任意键继续”消息。

  • 这可行,但这是一个[养成的坏习惯](http://www.cplusplus.com/forum/articles/11153/)。 (32认同)
  • 还有一个“std::cin.ignore();”用于此目的。 (6认同)
  • 根本不应该使用这个。 (3认同)