"\n" 表示內(nèi)容為一個回車符的字符串。std::endl 是流操作子,輸出的作用和輸出 "\n" 類似式塌,但可能略有區(qū)別。
std::endl 輸出一個換行符友浸,并立即刷新緩沖區(qū)珊搀。
例如:
std::cout << std::endl;
相當(dāng)于:
std::cout << '\n' << std::flush;
或者
std::cout << '\n'; std::fflush(stdout);
由于流操作符 << 的重載,對于 '\n' 和 "\n"尾菇,輸出效果相同境析。
對于有輸出緩沖的流(例如cout、clog)派诬,如果不手動進(jìn)行緩沖區(qū)刷新操作劳淆,將在緩沖區(qū)滿后自動刷新輸出。不過對于 cout 來說(相對于文件輸出流等)默赂,緩沖一般體現(xiàn)得并不明顯沛鸵。但是必要情況下使用 endl 代替 '\n' 一般是個好習(xí)慣。
對于無緩沖的流(例如標(biāo)準(zhǔn)錯誤輸出流cerr),刷新是不必要的曲掰,可以直接使用 '\n'疾捍。