- fflush() for linux
在windows底下要清除螢幕,我們會用system("cls")或者是fflush(stdout),但是在linux底下就不能使用fflush(stdout),只好勉為其難的用以下方式取代(畢竟clear並沒有真的把畫面清空):
除了上面常用的例子之外,fflush()也常在以下情況使用,如下程式碼:
在windows底下這個程式可以正常的運作,但是一旦拿到linux底下編譯就會出現下面的結果:
會有這樣的結果的原因是因為在linux底下fflush(stdin)是無效的,所以這時筆者我會以這樣的方式解決:
使用fgetc(stdin),來吸收掉enter後多出的字元,這樣的作法固然有用,但是必須非常了解scanf(), fgetc(), fgets()等函式的特性去使用才不會產生別的錯誤。
谢谢你的信息,成功的解决了我的程序在Linux下的运行!
ReplyDeleteabbott@gmail.com