Bạn luôn có thể lọc tất cả I/O bằng cách tạo một lớp để xử lý đầu ra. Do lớp có thể được sử dụng trong toàn bộ ứng dụng, một lớp tĩnh có thể theo thứ tự, nhưng bạn có thể khởi tạo một thể hiện của lớp khi cần thiết.
Ngoài việc viết một cái gì đó hay không để cout hoặc thậm chí chọn một đầu ra khác, dựa trên chuỗi đối số, lớp cũng có thể định dạng văn bản dựa trên loại đầu ra được chọn.
Tôi đã xem ostream và ngoại tuyến không thấy bất kỳ cách nào bạn có thể sửa đổi trực tiếp cout. Bạn đã gặp phải một nhu cầu đã xuất hiện trước đây, vì vậy hy vọng người khác đọc bài này có thể có ý tưởng tốt hơn về việc tạo lớp tôi đã đề xuất.
Tôi giả sử bạn có thể [freopen] (http://www.cplusplus.com/reference/clibrary/cstdio/freopen/) 'stdout' trước và sau mỗi cuộc gọi tới thư viện được chia sẻ. Hiệu suất và luồng có thể là một mối quan tâm tùy thuộc vào yêu cầu của bạn. – Joe
Bạn có thể sử dụng 'std :: cout.rdbuf()' để chuyển hướng đầu ra sang một tệp, ví dụ. – lapk
Thư viện được chia sẻ này dường như không có chất lượng thương mại. Nếu bạn có mã nguồn cho thư viện này, bạn nên biên dịch lại mã nguồn bằng tính năng ghi nhật ký bị tắt. Một thư viện có trách nhiệm sẽ cho phép điều này xảy ra ở một nơi bằng cách sử dụng một bộ tiền xử lý xác định. – Joe