ReadConsole()和 和有fgets()什么區別?他們似乎能夠從stdin.
我正在使用 Visual Studio 2019。
uj5u.com熱心網友回復:
ReadConsole 函式:從控制臺輸入緩沖區讀取字符輸入并將其從緩沖區中洗掉。
fgets:從流中獲取字串。
什么時候應該使用 ReadConsole?
根據檔案:
ReadConsole 從控制臺的輸入緩沖區讀取鍵盤輸入。它的行為類似于 ReadFile 函式,不同之處在于它可以以 Unicode(寬字符)或 ANSI 模式讀取。ReadConsole 只能與控制臺輸入緩沖區句柄一起使用,ReadFile 可以與其他句柄(例如檔案或管道)一起使用。
uj5u.com熱心網友回復:
這些是不同級別的編程。fgets是 C 標準庫中的一個函式,這意味著它必須存在并且在任何 C 實作中都具有相同的行為。如果您希望您的代碼在其他平臺上可用,或者只是在學習 C 語言,那么它應該是您的首選。
ReadConsole是來自 Windows API 的函式。它不能在 Windows 平臺之外使用,但會存在于任何 Microsoft 特定環境中,從 Visual Basic for Application(Microsoft Office 宏系統)到 C#。如果您正在構建專門針對 Windows 的混合語言應用程式,那么使用它是有意義的。或者,如果出于任何原因您想確保訪問控制臺緩沖區而不是重定向的標準輸入,您應該使用它。
TL/DR:fgets是標準的 C 方式。ReadConsole僅當您想確保讀取鍵盤緩沖區而不是可能的重定向標準輸入時,才應在 Windows 上使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/328729.html
