커맨드를 루프로 입력 할 수있는 대화 형 콘솔 응용 프로그램을 만들고 싶습니다. 예를 들어, 사용자 유형 "검색"과 프로그램은 일부 데이터를 찾아이를 화면에 인쇄합니다. 그런 다음 프로그램은 다음 명령 (검색, 종료 또는 기타)을 기다립니다. 사용자의 편의를 위해 내 프로그램에서 명령 내역을 지원하기를 원합니다 (예 : 키보드의 위아래 화살표를 누르면 터미널에서와 같이). 그러나 나는 scanf, std :: getline, std :: cin 등으로 더 읽을 수있는 텍스트를 어떻게 인쇄해야할지 모르기 때문에 어떻게하는지 깨닫지 못한다. 코드 std::cin << "hello";
이 컴파일되지 않았습니다 ('std :: cin < < "hello"에서'operator < < '과 일치하지 않음). 기능 fprintf(stdin, "hello");
은 아무것도 인쇄하지 않으며 scanf는이 인쇄 된 메시지를 읽을 수 없습니다. 및 scanf("%s", s);
및 gets(s)
등등은 printf
또는 std::out
에 의해 출력 된 텍스트를 읽을 수 없음을 알 수 있습니다. 그래서 문제는 : stdin
(std::cin
) 인 콘솔에 텍스트를 인쇄하려면 어떻게해야합니까? 아니면 명령 이력을 구성하는보다 우아한 방법이 있을까요?콘솔 응용 프로그램에서 명령 기록을 만드는 방법은 무엇입니까?
P. 또한 필요한 텍스트를 인쇄하기 위해 버튼을 누르는 시뮬레이션에 대해서 생각했지만 명령 기록을 만드는 더 좋은 방법이 있기를 바랍니다.
P.P.S. 나는 리눅스와 C++을 사용한다.
표준 I/O가 화면없이 systemw에서 시작되었지만 프린터로 시작된 것을 기억하면 도움이됩니다. 'printf'는 말 그대로 인쇄 된 텍스트입니다. 'scanf '로 그 내용을 읽으려면 작업자가 실제 종이 출력물을 스캐너에 공급할 필요가있었습니다. – MSalters