C++替代perror()

Sag*_*gar 16 c++ printing

我知道我们可以使用

perror()
Run Code Online (Sandbox Code Playgroud)

在C中打印错误.我只是想知道是否有一个C++替代品,或者我是否必须在我的程序中包含它(因此stdio.h).我试图避免尽可能多的C函数.

谢谢!

Jer*_*fin 20

你可以这样做:

std::cerr << strerror(errno) << std::endl;
Run Code Online (Sandbox Code Playgroud)

这仍然最终调用strerror,所以你真的只是用一个C函数代替另一个.OTOH,它确实让你通过流写,而不是混合C和C++输出,这通常是一件好事.至少AFAIK,C++没有添加任何东西到库作为替代品strerror(除了生成一个std::string,我不知道它会改变什么strerror).