相当于c ++中的printf

时间:2011-04-26 16:41:33

标签: c++ io stderr

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));

非常感谢任何建议,

4 个答案:

答案 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.