fprintf和ofstream使用没有打开文件

时间:2012-08-26 12:35:41

标签: c++ c

我可以安全地使用像

这样的代码
fprintf(nullptr, "str");

或者喜欢

std::ofstream() << "str";

std::ofstream f;
f << "str";

C / C ++标准中是否有这种情况的描述?

2 个答案:

答案 0 :(得分:2)

使用C ++流时,输出操作在通过std::ios_base::failbitstd::ios_base::badbit设置发送到流时无效。如果流不表示成功是可接受的,则可以使用空流缓冲区创建std::ostream

std::ostream nullstream(0);

如果您希望流也表示成功,您可以将其与流缓冲区一起使用,表明overflow()sync()成功但没有做任何事情。

答案 1 :(得分:0)

这不会回答您提出的问题,而是您应该问的问题 - 您可以将unused等属性分配给GCC中的变量,这会抑制警告。

http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Variable-Attributes.html