g++ (GCC) 4.6.0 20110419 (Red Hat 4.6.0-5
)
在c ++中这相当于什么?我知道这将用g ++编译。但我只是想知道c ++中是否还有其他可以使用的东西。
fprintf(stderr, "Server failed to receive message [ %s ]\n", stderror(errno));
非常感谢任何建议,
答案 0 :(得分:5)
怎么样:
std::cerr << "Server failed to receive message [" << stderror(errno)) << "]" << std::endl;
答案 1 :(得分:5)
在cerr中查看iostream。它像cout,但对于stderr。
#include <iostream>
std::cerr << "Server failed to receive message [ " << stderror(errno) << " ]"
<< std::endl;
或者您可以使用boost::forma来获取类型安全的sprintf。
using namespace boost;
std::cerr
<< format("Server failed to receive message [ %s ]") % stderror(errno)
<< std::endl;
答案 2 :(得分:2)
您可以使用输出流cerr。
cerr << "Server failed to receive message [ " << stderror(errno) << " ]" << endl;
答案 3 :(得分:1)
更一般的答案:您可以将任何istream对象与流运算符一起使用。还有很多其他类型的对象都是从istream继承而来的。例如,fstream对象是一种用于文件I / O的istream。还有sstream(字符串流)对象,它们以类似于sprintf和sscanf的方式使用。
话虽这么说,我要警惕使用C ++流操作符而不是C等价物(C ++也支持它们。)如果使用C ++,it's going to make internationalization very difficult.