有人能告诉我std::cerr和perror在用法上有什么区别吗
void perror ( const char * str );我想知道在C++应用程序中哪一个更可取,为什么它更可取。
发布于 2013-03-22 18:00:34
你的问题基本上可以归结为iostream与stdio。类似的问题已经在here上得到了回答。
如果您使用的是C++,那么除非您想做一些非常具体的事情,否则cerr绝对比perror更可取。唯一真正的区别是cerr实际上与
fprintf(stderr, const char*, arg1, ...);而perror还将根据errno加载并显示相应的错误消息。另外,你不能显示错误变量,所以你不能这样做
perror("Something went wrong, i: %d", i);除非您对错误消息进行预处理。
发布于 2013-03-22 17:56:34
http://www.cplusplus.com/reference/cstdio/perror/
perror和cerr是不同的东西。cerr -与stderr连接的std::ostream类的对象。perror会在stderr中打印errno和字符串。
https://stackoverflow.com/questions/15567256
复制相似问题