2020.12.31
今天,我做著題,一道題我死活調不出來。
答案總是乙個特別大的數。
我:???
然後呢,我又檢查了一遍,沒有錯。
這時,調程式的我用cout打出了中間變數,結果:答案正確了! /jk
不死心的我又把printf換成了cout,哎,就在這一剎那。答案竟然也對了。 /jk
後來我找到問題了,原來是int定義的數我用%lld輸出了,不出問題就怪了。
但是令人疑惑的事情是:既然printf有錯,那為什麼先用cout再用printf,printf輸出的就對了呢?
於是,根據實驗目的,我列出了乙個**:
實驗目的
**cout 與 printf輸出的差別 方式
答案是否正確
是否開啟longlong
第一次實驗
cout是否
第二次實驗
printf否否
第三次實驗
cout+printf是否
第四次實驗
printf是是
好像推不出什麼有意義的來
由此可見,在printf輸出格式錯誤時,首先使用cout再使用printf也是的對的。
我們再來對比一下cout和printf庫格式
速度特點
cout
iostream
cout<<
慢輸出時不用考慮輸出的型別
printf
cstdio/stdio.h
printf("",…)
快輸出型別種類多,速度快
那麼為什麼cout後面跟printf就會對呢?
本人認為,可能時前面用cout的時候,int就變成了乙個signed(可能或是其他)的型別的數。再用printf輸出"%lld"時就會自動轉換,導致答案正確的效果。
總而言之還是要細心呀
謝謝朋友們。
C 中cout與printf區別
vc環境c 測試乙個判斷系統是大小端的程式時候遇到了問題,如下 加入了改正後的cout與printf對比 include include using namespace std union endian void main 所以沒有特殊要求,請不要混用iostream和stdio。尤其是如果你的程式...
cout與printf的混用問題
在某題的輸出混用了cout與printf 結果輸出的順序出錯。把原因歸結為乙個帶緩衝而乙個不帶緩衝。因為stdio.h中定義了像ungetc 這樣的函式,其作用是將字元放回到輸入流中。可見stdio中也是使用了緩衝的。那麼為什麼cout與printf 混用會發生問題呢?include using n...
C 中cout與printf的區別
cout輸出原理 1 使用過載 根據輸出內容的型別來過載不同型別的函式,所以可以輸出包括自定義型別在內的多種型別。舉個例子 在cout中,相當於有很多cout的同名函式,但它們有不同型別的引數 如int float char等,當 輸出內容 為char型別時,呼叫引數為char的cout函式 2 開...