cout
là luồng được lưu vào bộ đệm. Điều này có nghĩa là dữ liệu sẽ được ghi vào bộ đệm và sẽ được in khi luồng được xóa, chương trình đã kết thúc hoặc khi bộ đệm được điền đầy.Tại sao cout xuất hiện ngay lập tức?
Tôi đã thực hiện một chương trình nhỏ để kiểm tra cách hoạt động, nhưng tôi không hiểu tại sao nó in ngay cả trước khi bất kỳ điều kiện nào ở trên được đáp ứng.
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
cout << "Test";
float secs = 5;
clock_t delay = secs * CLOCKS_PER_SEC;
clock_t start = clock();
while (clock() - start < delay) { }
return 0;
}
Khi chạy, "Kiểm tra" được xuất trước khi bắt đầu vòng lặp.
Tại sao đầu ra của tôi không được lưu vào bộ đệm cho đến khi chương trình kết thúc?
Hãy thử 'std :: ios :: sync_with_stdio (false);' trước khi bạn in. – scohe001
std :: ios :: sync_with_stdio (sai); hoạt động tuyệt vời, cảm ơn! Nhưng tại sao? –
Xem câu trả lời của tôi bên dưới – scohe001