我遇到了Windows控制台的问题...在windows api中,控制台总是必须是屏幕或键盘,还是可以是任何字符缓冲区或类似文本的东西文件?
thanx
如果我更具体一点,windows api中的 SetConsoleMode 功能有一个名为 hConsoleHandle 的参数,它有一个名为 ENABLE_ECHO_INPUT 的标志,可以使用回应我们读到屏幕上的每一个角色..所以我认为在Windows系统编程中,控制台意味着更多的东西而不是它的正常意义......我是在写,如果是的话,真正意义是什么......?
再次再次
答案 0 :(得分:1)
在Windows下,控制台始终是一个类似于命令提示符窗口的窗口。您可以在Windows程序中打开,读取和写入该内容。它不是缓冲区或文本文件,但您可以编写缓冲区或文本文件,然后将该实体传输到控制台。
以下是解决控制台窗口时可以使用的C语言函数:
_cgets, _cgetws, _cgets_s, _cgetws_s
Read string from console
_cprintf, _cwprintf, _cprintf_s, _cprintf_s_l, _cwprintf_s, _cwprintf_s_l
Write formatted data to console
_cputs
Write string to console
_cscanf, _cwscanf, _cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l
Read formatted data from console
_getch, _getwch
Read character from console
_getche, _getwche
Read character from console and echo it
_inp
Read one byte from specified I/O port
_inpd
Read double word from specified I/O port
_inpw
Read 2-byte word from specified I/O port
_kbhit
Check for keystroke at console; use before attempting to read from console
_outp
Write one byte to specified I/O port
_outpd
Write double word to specified I/O port
_outpw
Write word to specified I/O port
_putch, _putwch
Write character to console
_ungetch, _ungetwch
"Unget" last character read from console so it becomes next character read
答案 1 :(得分:1)
不,“控制台”意味着具有基于文本的界面的应用程序。
维基百科上的 Win32 Console表示该标签指定了在Windows API下运行的文本模式程序,并且将使用例如WriteConsole
而不是printf
或{的函数。 {1}}。
所以,控制台是一样的,但底层库是不同的。
答案 2 :(得分:1)
正如我所描述的那样here
Consoles manage input and output (I/O) for character-mode applications
(applications that do not provide their own graphical user interface).
所以你在那里得到答案。如前所述,尝试更好地解释您的背景,目标以及您的想法,也许我们可以帮助您更多。