sscanf正則表達(dá)式用法 c 中sprintf與cin的區(qū)別,以及cout與printf的區(qū)別?
c 中sprintf與cin的區(qū)別,以及cout與printf的區(qū)別?你想問的是scanf和CIN的區(qū)別,cout和printf的區(qū)別??Printf和scanf用C語言編寫,cout和CIN用C語
c 中sprintf與cin的區(qū)別,以及cout與printf的區(qū)別?
你想問的是scanf和CIN的區(qū)別,cout和printf的區(qū)別??Printf和scanf用C語言編寫,cout和CIN用C語言編寫,需要導(dǎo)入iostream庫。
Printf和scanf需要定義輸入輸出格式,cout和CIN根據(jù)變量類型輸入輸出,不需要指定變量的輸入輸出類型。
①Scanf的速度至少是CIN的兩倍
②CIN慢的原因:默認(rèn)情況下,CIN和stdin總是同步的,也就是說,這兩種方法可以混合使用,而不用擔(dān)心文件指針的混亂。同時,cout和stdout是相同的,兩種方法的混合使用不會導(dǎo)致輸出順序的混亂。由于這個兼容性特性,CIN有很多額外的開銷。(解決方案:只需要一條語句STD::IOS::sync和Stdio(false),這樣就可以取消CIN和stdin之間的同步。此時,CIN與scanf幾乎相同)
③編譯時讀取變量的類型由CIN和cout決定。Scanf()是在運行時確定的,編譯器不能優(yōu)化它,它必須識別字符串。理論上,scanf比CIN慢得多。事實上,scanf之所以更快,是因為許多編譯器對CIN的處理過于保守。
④同事建議acmer嘗試使用scanf和printf進(jìn)行輸入和輸出