1. 程式人生 > >什麽時候,可以關閉cin和stdin的同步

什麽時候,可以關閉cin和stdin的同步

left pri code pac scanf 同時 space stdin 無法

一些情況下,我們為了保證cin的讀取輸出速度,會選擇在代碼開頭添加這樣一句代碼
std::ios::sync_with_stdio(false);
它的功能就是關閉cin和stdin的同步。從而提高cin的速度。可以使cin比scanf更加快。 但是身為小白的我,第一次用的時候忽略了一個問題。 這句話的功能是取消cin和stdin的同步,也就是說如果你打代碼裏同時又cin,cout語句和scanf,prin語句,那麽他們就不會同步了。 這意味著,即便你的輸出是正確的,因為cin和stdin速度上不再同步的關系。你的輸出可能會出現錯誤的順序。這個現象不會出現在運行窗口上(所以你調試的時候只在運行窗口無法發現這個問題),但是在輸出文件裏你會發現,cin的輸出會比stdin更快,即便在讀入順序上有先後之差,那麽在OJ上毫無疑問會得到一個WA。 所以,當我們選擇使用
std::ios::sync_with_stdio(false
);
這個語句時 就要做好只用cin讀入和輸出的準備

什麽時候,可以關閉cin和stdin的同步