相当于 c++ 中的 fprint

发布于 2024-11-03 10:41:02 字数 256 浏览 5 评论 0 原文

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

非常感谢您的任何建议,

g++ (GCC) 4.6.0 20110419 (Red Hat 4.6.0-5)

what is the equivalent of this in c++? I know that this will compile in g++. But I just interested to see if there is any thing else in c++ that I can use like this.

fprintf(stderr, "Server failed to receive message [ %s ]\n", stderror(errno));

Many thanks for any suggestions,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

稚然 2024-11-10 10:41:02

怎么样:

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

What about:

std::cerr << "Server failed to receive message [" << stderror(errno)) << "]" << std::endl;
泪是无色的血 2024-11-10 10:41:02

查看 cerr 中的 iostream。它类似于 cout,但用于 stderr。

 #include <iostream>

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

或者您可以使用 boost::formatt 来获取类型安全的 sprintf。

 using namespace boost;
 std::cerr 
   << format("Server failed to receive message [ %s ]") % stderror(errno)
   << std::endl;

Check out cerr in iostream. Its like cout, but for stderr.

 #include <iostream>

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

Or you can use boost::format to get a type safe sprintf.

 using namespace boost;
 std::cerr 
   << format("Server failed to receive message [ %s ]") % stderror(errno)
   << std::endl;
め可乐爱微笑 2024-11-10 10:41:02

您可以使用输出流 cerr。

cerr << “服务器接收消息失败[”<<标准错误(错误号)<< “]”<<结束;

You can use the output stream cerr.

cerr << "Server failed to receive message [ " << stderror(errno) << " ]" << endl;

悍妇囚夫 2024-11-10 10:41:02

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

话虽这么说,我会谨慎使用 C++ 流运算符而不是 C 等效项(C++ 也支持这些运算符)。如果您使用 C++ 流运算符,这将使国际化变得非常困难。

A more general answer: you can use any istream object with the stream operators. There are a lot of other types of objects that inherit from istream. For example, fstream objects are a type of istream used for file I/O. There's also sstream (string stream) objects which are used in a similar way to sprintf and sscanf.

That being said, I'd be wary of using the C++ stream operators instead of the C equivalents (which are also supported in C++.) If you use the C++ ones, it's going to make internationalization very difficult.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文