Tôi đang sử dụng thư viện đang in thông báo cảnh báo tới cout
hoặc cerr
. Tôi không muốn thông báo cảnh báo này đến được đầu ra của chương trình của tôi. Làm thế nào tôi có thể bắt đầu ra này và đặt nó vào /dev/null
hoặc tương tự?Đầu ra chức năng chuyển hướng đến/dev/null
MWe:
#include <iostream>
void foo()
{
std::cout << "Boring message. " << std::endl;
};
int main()
{
foo();
std::cout << "Interesting message." << std::endl;
return 0;
}
Sản lượng nên là:
Interesting message.
Làm thế nào tôi nên sửa đổi main
để có được những kết quả mong muốn? (foo
không được thay đổi.)
tôi đã cố gắng sử dụng freopen()
và fclose(stdout)
như đề xuất trong câu hỏi này How can I redirect stdout to some visible display in a Windows Application?. Kết quả là không có gì được in.
Cảm ơn bạn đã làm việc này, tuy nhiên, tôi đã quyết định đánh dấu câu trả lời khác là câu trả lời được chấp nhận. – Unapiedra
Cảm ơn @Unapiedra. Cách cư xử luôn được đánh giá cao :) – wreckgar23
Tôi có thể đề nghị lưu trạng thái hiện tại thông qua 'rdstate' và sau đó đặt lại nó về sau đó không? Đó là một chút an toàn hơn thanh toán bù trừ trạng thái của luồng. – SirGuy