C++ VSerror()中字符串参数不会输出的屏幕上,只是报错

VS2022 error()中字符串参数不会输出到屏幕上,只是报错

要看下你的输出是定义在哪里输出的,output是否允许显示错误信息。

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在 C++ 中,std::error() 函数用于输出错误信息。但是,它并不会直接将字符串参数输出到屏幕上,而是将其写入到标准错误输出流 std::cerr 中。因此,如果您想要在屏幕上看到错误信息,需要将标准错误输出流重定向到屏幕输出流。

以下是一个简单的示例,演示如何将 std::error() 函数的输出重定向到屏幕上:

#include <iostream>
#include <sstream>
#include <string>

int main()
{
    // 重定向标准错误输出流
    std::ostringstream errorStream;
    std::streambuf* oldErrorStream = std::cerr.rdbuf(errorStream.rdbuf());

    // 调用 std::error() 函数,输出错误信息
    std::string errorMsg = "This is an error message.";
    std::error(std::make_error_code(std::errc::bad_address), errorMsg);

    // 恢复标准错误输出流
    std::cerr.rdbuf(oldErrorStream);

    // 在屏幕上输出错误信息
    std::cerr << errorStream.str() << std::endl;

    return 0;
}