Windows 콘솔 C 응용 프로그램에서 에코를 비활성화하려면 어떻게합니까?Windows 콘솔에서 에코를 비활성화하는 방법은 무엇입니까?
_getch
(아직 Ctrl-C)으로 문자를 캡처하고 싶지 않습니다. _getch 외에도 cmd
은 에코를 사용하지 않고, cygwin
은 사용하지 않는 것으로 보입니다.
파이프를 리디렉션하거나 콘솔 설정을 수정하는 방법이 있어야합니다.
Windows 콘솔 C 응용 프로그램에서 에코를 비활성화하려면 어떻게합니까?Windows 콘솔에서 에코를 비활성화하는 방법은 무엇입니까?
_getch
(아직 Ctrl-C)으로 문자를 캡처하고 싶지 않습니다. _getch 외에도 cmd
은 에코를 사용하지 않고, cygwin
은 사용하지 않는 것으로 보입니다.
파이프를 리디렉션하거나 콘솔 설정을 수정하는 방법이 있어야합니다.
어쩌면 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
[크로스 플랫폼 코드 (에 사용
네, 가장 쉬운 방법은 내 의견을 freopen을 사용하여 기본적으로 stdout 파일 설명자 뒤에 열린 파일을 변경하는 것입니다. 당신이 한 번에 출력을 저장하지 않으려면
당신은 (는/dev /와 같은을/dev/null을 쓸 수 있어야,
freopen("C:\some_file.txt", "w", stdout);
을 사용하여 파일로 콘솔 출력을 리디렉션 할 수있다 널 난 당신이
이그래서 다음과 같이 작동합니다 "NUL"또는 "\ 장치 \의 널 (null)"을 시도 할 수없는 것을() 유닉스에 있지만 창에서 :
freopen("\Device\Null", "w", stdout);
미안 해요 나는 실제로 그것을 시도 할 수 없다. 창문은 없지만 그게 주요 아이디어입니다.
같은 생각 http://code.google.com/p/xpost/source/browse/src/lib /xpost_compat.c#87)는 윈도우즈 케이스를 훌륭하게 커버합니다. –