사용자 입력을 루프로 받아들이고 백그라운드에서 응답을 출력하는 대화 형 응용 프로그램을 작성 중입니다. 이제Go에서 사용자 입력을 기다리는 동안 콘솔로 인쇄하는 방법?
>> Some text
>> :: Hi I'm the user and I'm
: 나는 사용자 입력을 기다리고있는 동안
scanner := bufio.NewReader(os.Stdin)
for {
fmt.Print(":: ") // prompt for user to enter stuff
in,_:=scanner.ReadString('\n')
}
그러나, 나는과 같이 네트워크를 통해 가지고 몇 가지 비동기 데이터를 인쇄하려면 : 내 코드의 리더 부분은 같다
>> Some text
>> This data was printed while user was inputting
>> :: Hi I'm the user and I'm
을 이제 사용자는 자신의 입력을 완료 할 수 있습니다 : 몇 가지 배경 데이터가 도착
>> Some text
>> This data was printed while user was inputting
>> :: Hi I'm the user and I'm entering some text
>> ::
을
배경 루틴이 텍스트의 경우 stdin
을 스캔하고, 어떻게 든 지우고, 자체 데이터를 인쇄하고, 원본 텍스트를 복원해야한다고 생각합니다. Enter 키를 통해 입력되지 않은 텍스트를 스캔하는 방법이나 선을 지우는 방법을 모르겠습니다. 어떻게해야합니까?
아마 이러한 https://github.com/avelino/awesome-go#advanced-console-uis 중 하나를 사용하여 이와 유사한 작업을 수행 할 수 있습니다. 특히 termbox 또는 그 위에 구축 된 패키지 중 하나가 될 수 있습니까? 덕분에 @ 0cbwlkr – jcbwlkr
. 나는 당신의 링크에서'termbox-go'를 사용하여 끝내었다. 내 자신의 인쇄 기능을 작성하고 커서 위치 등을 관리해야했지만 결국에는 내가 원하는 효과를 얻었습니다. – hazrmard