回覆列表
  • 1 # 魚不愛游泳

    1、區別在於:

    \n只代表換行的跳脫字元

    endl除了代表換行,還緊跟著清出緩衝槽

    2、接下來我們看一下具體內容的辨析:

    要明白\n和endl的區別,首先要明白一個概念:

    輸出流。

    目前輸出流的型別很多,有對檔案作為目標輸出的,有對顯示屏(Console間接輸出)進行輸出的。也有輸出到其他抽象結構的。

    cout的意思是console-output:控制檯輸出.

    但是它的機制還遠沒有我們想的那麼簡單,<<後面跟著寫什麼就直接輸出到螢幕什麼?不是這樣的。

    就拿cout<<"Hi,zw.\n"<<endl;

    來說,cout代表後面的內容輸出到控制檯的一個緩衝槽,而不是控制檯(黑螢幕的那個).

    緩衝槽在什麼情況下會把緩衝槽的內容輸出到控制檯的【螢幕介面】呢?當遇到endl或者其他fflush之類的命令或函式時,緩衝槽裡的內容會按照順序輸出到控制檯,再由控制檯進行轉意字元的識別列印。

    endl和\n的區別是:

    \n在控制檯裡被翻譯為【換行】

    endl在控制檯裡也被翻譯成【換行】

    但endl還在緩衝槽這個部分有個功能:清槽,把緩衝槽裡的內容輸出到控制檯。

    為什麼平時幾乎沒有任何區別呢?

    因為緩衝槽即使不用endl,只要遇到另一行表示式,一般也會自動清槽。

  • 中秋節和大豐收的關聯?
  • 有朋友買過功夫英語嗎、那麼貴、好用嗎、功夫英語可以一個人買兩個人用嗎?