很多朋友對于c語言scanf與printf的區別和scanf是輸出還是輸入不太懂,今天就由小編來為大家分享,希望可以幫助到大家,下面一起來看看吧!
c++中sprintf與cin的區別,以及cout與printf的區別
你要問的是scanf與cin的區別,以及cout與printf的區別這個吧??printf,scanf是c語言寫法,cout,cin是C++寫法,需要導入iostream庫。
printf,scanf在輸入輸出時要定義好輸入輸出格式,而cout,cin則是根據變量的類型輸入輸出,不需要指定變量的輸入輸出類型。①scanf至少要比cin快一倍左右
②cin慢的原因:默認情況,cin與stdin總是保持同步的,也就是說這兩種方法可以混用,而不必擔心文件指針混亂,同時cout和stdout也一樣,兩者混用不會輸出順序錯亂。正因為這個兼容性的特性,導致cin有許多額外的開銷。(解決:只需一個語句std::ios::sync_with_stdio(false);,這樣就可以取消cin于stdin的同步了,此時的cin就與scanf差不多了)
③cin、cout是在編譯期間就決定了讀入變量的類型。而scanf()是在運行期決定的,編譯器無法優化,而且還要識別字符串。理論上scanf比cin要慢很多,實際上快的原因是很多編譯器對cin、cout的處理過于保守。
④同牛人建議,Acmer盡量用scanf,printf來進行輸入輸出吧...
C語言中,什么時候該用float、int、printf、scanf
按英文字面意思來理解。
float:浮點,就是對應我們在數學中的小數;int:integer,整數。printf=print(打印)+f(function函數),就是打印函數,輸出到屏幕上,輸出函數;scanf=scan(掃描)+f(function函數),掃描函數,就是外面的東東掃描到電腦里面,作為輸入,就是輸入函數。c語言中,scanf和printf函數的問題,關于雙精度double,格式控制
如果是(輸出printf)的輸出項是double或float時,可以用%f或%e作為格式描述字符,(其中double也可以用%lf或%le)。double的意思是可以有16位有效數字,而在固定格式輸出的時候,都默認的是6位,輸出語句printf用double的時候f前面加l是沒有效果的,你要輸出長度,可以寫,%0.8f,這樣就是輸出8個有效數字了,要輸出幾位就改0.后面的參數。
注意:如果是(輸入scanf)的輸入項為double時,則必須用%lf或%le(必須有個l)作為格式描述字符。位于輸入項為float與上面的一致。
C語言中printf用在scanf前面是什么意思
用來顯示輸入的提示信息比如:printf("請輸入菜單項前面序號進行選擇(0=結束):");scanf("%d",&a);就會在接收鍵盤輸入前出現提示:請輸入菜單項前面序號進行選擇(0=結束):這樣省得用戶在輸入時不知道輸入的用途和類型,以免輸錯
scanf和printf的用法舉例
可以
scanf是C語言標準的格式輸入函數,所謂格式,就是有些地方的符號是規定好的,不能亂用,舉個例子,scanf("格式符號",輸入地址列表)scanf("%d",&mum),這個意思就是從鍵盤上,按照整數的數據形態為變量mum輸入一個值!
而printf函數則是標準的輸出格式函數,與scanf類似,printf("格式符號",輸出列表)printf("%d",mum),也就是把變量mum代表的空間里存儲的值輸出到控制臺界面
如果你還想了解更多這方面的信息,記得收藏關注本站。