谁能告诉我std::cerr
和perror
void perror ( const char * str );
我想知道在 C++ 应用程序中哪一个更可取,以及为什么它更可取。
http://www.cplusplus.com/reference/cstdio/perror/
perror
并且cerr
是不同的东西。cerr
- 是std::ostream
与 连接的类的对象stderr
。并perror
打印errno
和你的字符串在stderr
.
您的问题基本上归结为 iostream 与 stdio。此处已回答了类似的问题。
如果你在 C++ 中工作,除非你想做一些非常具体的事情,否则 cerr 绝对比 perror 更可取。唯一真正的区别是 cerr 实际上与
fprintf(stderr, const char*, arg1, ...);
而 perror 还将根据 errno 加载并显示适当的错误消息。你也不能用 perror 显示变量,所以你不能这样做
perror("Something went wrong, i: %d", i);
除非你预处理你的错误信息。