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