首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用perror和std::cerr

使用perror和std::cerr
EN

Stack Overflow用户
提问于 2013-03-22 17:51:21
回答 2查看 2.5K关注 0票数 5

有人能告诉我std::cerrperror在用法上有什么区别吗

代码语言:javascript
复制
void perror ( const char * str );

我想知道在C++应用程序中哪一个更可取,为什么它更可取。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-22 18:00:34

你的问题基本上可以归结为iostream与stdio。类似的问题已经在here上得到了回答。

如果您使用的是C++,那么除非您想做一些非常具体的事情,否则cerr绝对比perror更可取。唯一真正的区别是cerr实际上与

代码语言:javascript
复制
fprintf(stderr, const char*, arg1, ...);

而perror还将根据errno加载并显示相应的错误消息。另外,你不能显示错误变量,所以你不能这样做

代码语言:javascript
复制
perror("Something went wrong, i: %d", i);

除非您对错误消息进行预处理。

票数 2
EN

Stack Overflow用户

发布于 2013-03-22 17:56:34

http://www.cplusplus.com/reference/cstdio/perror/

perrorcerr是不同的东西。cerr -与stderr连接的std::ostream类的对象。perror会在stderr中打印errno和字符串。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15567256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档