Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c+中fprint的等效值+;_C++_Io_Stderr - Fatal编程技术网

C++ c+中fprint的等效值+;

C++ c+中fprint的等效值+;,c++,io,stderr,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)); 非常感谢您的建议,您可以使用输出流cerr cerr关于: std::cerr << "Server failed to receive m

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

非常感谢您的建议,

您可以使用输出流cerr

cerr关于:

std::cerr << "Server failed to receive message [" << stderror(errno)) << "]" << std::endl;
std::cerr入住。它就像cout,但对stderr来说

 #include <iostream>

 std::cerr << "Server failed to receive message [ " << stderror(errno) << " ]" 
           << std::endl;
#包括

一个更一般的答案:您可以将任何istream对象与流操作符一起使用。还有许多其他类型的对象继承自istream。例如,fstream对象是一种用于文件I/O的istream。还有sstream(字符串流)对象,它们的使用方式与sprintf和sscanf类似


刚才说,我会谨慎使用C++流操作符而不是C等价物(也支持C++)。如果使用C++,

我相信EntL>代码>刷新缓冲区,这对于错误消息来说是有用的。这使得这个答案比使用
\n
@MarkRansom:
cerr
在每次输出操作后(默认情况下)都会刷新的答案要好,所以
\n
std::endl
之间的唯一区别在这里并不重要。@Macmade:完全正确吗
std::endl
\n
相比,对平台的依赖性不强也不弱。区别在于std::endl会刷新缓冲区。@MacMake:
std::cerr
在每次输出操作后都会刷新。对。。。但std::cout的情况并非如此。。。所以无论如何最好使用std::endl…@macmake,我在发现之前删除了我的评论。但是,对于其他人来说,这是件好事,他们可能需要了解有关标题的信息。谢谢。+1感谢
boost::format
。您可以将
格式
对象直接转储到流中。您不需要调用
str()
 using namespace boost;
 std::cerr 
   << format("Server failed to receive message [ %s ]") % stderror(errno)
   << std::endl;