1、區別在於:
\n只代表換行的跳脫字元
endl除了代表換行,還緊跟著清出緩衝槽
2、接下來我們看一下具體內容的辨析:
要明白\n和endl的區別,首先要明白一個概念:
輸出流。
目前輸出流的型別很多,有對檔案作為目標輸出的,有對顯示屏(Console間接輸出)進行輸出的。也有輸出到其他抽象結構的。
cout的意思是console-output:控制檯輸出.
但是它的機制還遠沒有我們想的那麼簡單,<<後面跟著寫什麼就直接輸出到螢幕什麼?不是這樣的。
就拿cout<<"Hi,zw.\n"<<endl;
來說,cout代表後面的內容輸出到控制檯的一個緩衝槽,而不是控制檯(黑螢幕的那個).
緩衝槽在什麼情況下會把緩衝槽的內容輸出到控制檯的【螢幕介面】呢?當遇到endl或者其他fflush之類的命令或函式時,緩衝槽裡的內容會按照順序輸出到控制檯,再由控制檯進行轉意字元的識別列印。
endl和\n的區別是:
\n在控制檯裡被翻譯為【換行】
endl在控制檯裡也被翻譯成【換行】
但endl還在緩衝槽這個部分有個功能:清槽,把緩衝槽裡的內容輸出到控制檯。
為什麼平時幾乎沒有任何區別呢?
因為緩衝槽即使不用endl,只要遇到另一行表示式,一般也會自動清槽。
1、區別在於:
\n只代表換行的跳脫字元
endl除了代表換行,還緊跟著清出緩衝槽
2、接下來我們看一下具體內容的辨析:
要明白\n和endl的區別,首先要明白一個概念:
輸出流。
目前輸出流的型別很多,有對檔案作為目標輸出的,有對顯示屏(Console間接輸出)進行輸出的。也有輸出到其他抽象結構的。
cout的意思是console-output:控制檯輸出.
但是它的機制還遠沒有我們想的那麼簡單,<<後面跟著寫什麼就直接輸出到螢幕什麼?不是這樣的。
就拿cout<<"Hi,zw.\n"<<endl;
來說,cout代表後面的內容輸出到控制檯的一個緩衝槽,而不是控制檯(黑螢幕的那個).
緩衝槽在什麼情況下會把緩衝槽的內容輸出到控制檯的【螢幕介面】呢?當遇到endl或者其他fflush之類的命令或函式時,緩衝槽裡的內容會按照順序輸出到控制檯,再由控制檯進行轉意字元的識別列印。
endl和\n的區別是:
\n在控制檯裡被翻譯為【換行】
endl在控制檯裡也被翻譯成【換行】
但endl還在緩衝槽這個部分有個功能:清槽,把緩衝槽裡的內容輸出到控制檯。
為什麼平時幾乎沒有任何區別呢?
因為緩衝槽即使不用endl,只要遇到另一行表示式,一般也會自動清槽。