커스텀 스크립팅 언어 용 리눅스 셸을 작성하고 있는데 사용자가 단일 명령문을 입력 할 때마다 "..."를 출력하고 싶습니다. 첫 줄에는 ">>> "인쇄 된 다음 입력을 기다리고 있습니다.터미널에서 입력을 출력과 동기화하는 방법은 무엇입니까?
>>> void f() {
... "this is a test"
... }
>>>
내가 fgets
으로 라인을 읽고 있어요, 나는 완전히 읽은 후, 나는 인쇄 "..."fgets
또 다른 호출을 사용하여, 반복 : 다음은 예입니다. 이것은 적당히 빠른 대화식 입력에 적합합니다. 나는 단자에 코드가 포함 된 줄 바꿈을 붙여하지만, 내가 무엇을 얻을 것은 내가 stdout
에 인쇄 한 후 나는 fflush
전화를 방출에도 불구하고,이 "..." 'ES 너무 늦게 인쇄 된 다음
>>> void f() {
"this is a test"
}
... ... >>>
입니다 . 이 일을하기 위해 특별한 것이 있는지 여부를 아는 사람이 있습니까?
을, 단지 스트림 없습니다. 터미널 자체의 키 누르기 과정을 방해하려고합니다. 일반적으로 문자는 "프로그램을 읽을 준비가되었을 때"가 아닌 "입력 할 때"화면에 나타나며 붙여 넣기가 많이 덤프되는 것처럼 보입니다 한 번에 문자의. 예를 들어 에코를 사용 중지 할 수 있어야합니다. 비밀 번호 입력, 그래서 거기에 시설이 있습니다. ncurses. –
@ 스티브 아 이제 봅시다. 나는 에코를 사용 안 함으로하고, 내가 읽은 텍스트를'printf'하고 싶을까요? 그 좋은 소리. –
네,'printf' 그것, 아니면 일단 ncurses로 시작했다면 다른 ncurses를 써서 텍스트를 배치 할 수 있습니다. –