這是直接控制底層的需求,當然不好實現,亦即我上面說的用流輸入輸出庫函數是不可能的,因為這類庫函數是面向可移植環境的,而要控制底層卻必須犧牲可移植性,直接與硬件和系統打交道。在DOS時代,Turbo C/C++、Borlanc C/C++、MSC等都提供直接操縱硬件的擴展庫函數(對你這種需求而言是conio頭),但這些函數是不能在保護模式的新系統中運行的,在Windows這樣的環境,WinTC/WinBC的conio頭被重新封裝過,調用Win32API模擬舊式的conio庫函數,而MSC(升級之後稱為VC++)則乾脆廢掉conio頭,直接使用Win32API即可(Windows.h)。底層的API可以讓光標在Console屏幕上四處游走,即GotoXY()或SetCursorPosition()之類的函數,但必須學會真正在CUI中編程的思維,不是GUI,也不是類似type的流輸入輸出模式,其實看看TC/BC的IDE介面就知道了,那正是典型的CUI編程介面,它能夠實現的介面,你也一樣能夠實現,CUI也一樣能夠實現很漂亮的介面,像你所希望的那樣就是CUI程序很常規的需求,只是要不要學而已,畢竟它不流行了。
死守標準庫當然實現不了,凡是試圖不使用擴展庫的“標準”程序,都不可能是真正能夠實用的程序,那種程序能夠適用的範圍極窄。一旦你使用了Win32API,顧名思義就知道只能在Windows環境下運行你的程序。所以,寫程序之前,先考慮怎麼用、在哪裡用,這才是最重要的問題,很多人都是完全罔顧這種問題的,亂學一氣,拿著TC/BC的程序代碼就當在學C,殊不知未來不是用這種平臺寫程序的,學了一些註定要放棄的知識,放棄還是次要的事,最大的問題是有了抵抗新知識的頑固阻力。
死守標準庫當然實現不了,凡是試圖不使用擴展庫的“標準”程序,都不可能是真正能夠實用的程序,那種程序能夠適用的範圍極窄。一旦你使用了Win32API,顧名思義就知道只能在Windows環境下運行你的程序。所以,寫程序之前,先考慮怎麼用、在哪裡用,這才是最重要的問題,很多人都是完全罔顧這種問題的,亂學一氣,拿著TC/BC的程序代碼就當在學C,殊不知未來不是用這種平臺寫程序的,學了一些註定要放棄的知識,放棄還是次要的事,最大的問題是有了抵抗新知識的頑固阻力。
授人以渔,不授人以鱼。