關於本地cout與printf輸出不同的問題

2021-10-13 15:19:03 字數 929 閱讀 5973

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 開...