scanf輸入,回車後結果顯示在下一行中了。用什麼可以將輸入和輸出結果顯示在同一行呢?
只用純C++的話是不太可能滿足可移植性的,因為這很大程度上依賴於所使用的終端,其中終端連接了stdin(通常是行緩沖)。但是你可以使用某些庫來完成這個功能:
1.Windows 編譯器下可用 conio。使用 _getch() 函數讓你不用等待回車輸入就能得到字符。我不經常使用Windows來進行開發,但是我見過我同學僅僅包含頭文件 conio.h 就可以使用了。你可以在維基百科找到 conio.h 。上面列出了 getch() ,在 Visual C++ 中聲明為 deprecated(不贊成使用的)。
2.Linux 中可以使用 curses,在 Windows 中也可以使用兼容的 curses 實現。相比於 conio 它也有一個 getch() 函數。(可通過 man getch 來查看它的 manpage)。同樣你也可以在維基百科中找到 Curses。
如果你打算讓你的程序跨平台運行的話,我推薦你使用 curses。然而我相信有一些你能用來關掉行緩沖的函數(我相信那應該叫做“原始模式”,與“加工模式”,詳細可以在 man stty 中查看)。Curses 可以在跨平台跨終端的環境中幫你處理好這個。