如何在Windows控制台中禁用echo?

Run*_*olt 3 c windows console

如何在Windows控制台C应用程序中禁用echo?

我真的不想捕捉_getch(我仍然想要Ctrl-C)工作的角色.除了_getch之外,似乎只能禁用echo cmd而不是cygwin.

必须有一种方法来重定向管道或修改控制台设置.

Rob*_*obᵩ 6

也许SetConsoleMode(被盗codeguru):

#include <iostream>
#include <string>
#include <windows.h>


int main()
{
    HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); 
    DWORD mode = 0;
    GetConsoleMode(hStdin, &mode);
    SetConsoleMode(hStdin, mode & (~ENABLE_ECHO_INPUT));

    std::string s;
    std::getline(std::cin, s);

    std::cout << s << "\n";
    return 0;
}//main
Run Code Online (Sandbox Code Playgroud)

  • 这是上述评论的[更新链接](https://github.com/luser-dr00g/xpost/blob/3063f60d342251754f5e78f454ffb5e69687fa9b/src/lib/xpost_compat.c#L132) (3认同)