1
我想從控制檯使用IO::console::getch
在循環中輸入,但getch
似乎不捕獲第一個換行(我需要爲輸入循環打破),而getc
確實,但不能與我想要做的其他事情一起工作。不能捕獲第一個CRLF與原始IO ::控制檯
如何捕獲第一個CRLF,因此我不需要再次敲入兩次?
相關代碼:
require 'io/console'
buffer,str=IO::console(),""
loop do
buffer.write "\r\033[32m"+str+"\033[0m"
chr=buffer.getch
break if chr=="\r"
str+=chr
end
print "\n"+str
你不說你在使用什麼操作系統,但通常你只能在Windows上看到CRLF。 Linux和Mac OS只使用'「\ n」'。如果你想解釋你想做什麼,這可能會有所幫助,因爲通常人們不會試圖寫入控制檯或使用'getch'讀取單個字符,所以看起來你正在爲自己做更多的工作。 –