谁能告诉我std::cerr
和之间的用法区别是什么perror
void perror ( const char * str );
Run Code Online (Sandbox Code Playgroud)
我想知道在 C++ 应用程序中哪一个更可取,为什么它更可取。
您的问题基本上可以归结为 iostream 与 stdio。类似的问题已在这里得到解答。
如果您使用 C++ 工作,那么 cerr 绝对比 perror 更可取,除非您想做一些非常具体的事情。唯一真正的区别是 cerr 几乎与
fprintf(stderr, const char*, arg1, ...);
Run Code Online (Sandbox Code Playgroud)
而 perror 还会根据 errno 加载并显示相应的错误消息。另外,您无法显示带有 perror 的变量,因此您不能这样做
perror("Something went wrong, i: %d", i);
Run Code Online (Sandbox Code Playgroud)
除非你预处理你的错误消息。