任何人都可以告诉我std::cerr
和perror
void perror ( const char * str );
我想知道在C ++应用程序中哪一个更受欢迎以及为什么它更受欢迎。
答案 0 :(得分:3)
http://www.cplusplus.com/reference/cstdio/perror/
perror
和cerr
是不同的事情。 cerr
- 是与std::ostream
相关联的stderr
类的对象。并perror
在errno
打印stderr
和您的字符串。
答案 1 :(得分:2)
你的问题基本归结为iostream vs stdio。类似的问题已经回答here。
如果你在C ++工作,cerr绝对比perror更可取,除非你想做一些非常具体的事情。唯一真正的区别是cerr与
几乎相同fprintf(stderr, const char*, arg1, ...);
而perror也会根据errno加载并显示相应的错误消息。此外,您无法使用perror显示变量,因此您无法执行
perror("Something went wrong, i: %d", i);
除非您预处理错误消息。