将int写入std :: ofstream :: write()一行

时间:2015-10-31 20:18:16

标签: c++

我想将二进制文件写入文件。

我正在查看函数std :: ofstream :: write()。

它需要一个指针和要写入的字节数。无论如何我可以做一些简单的事情,比如

ofstream.write(36);

而不是像......那样做两行......

int out = 36; ofstream.write((char *)& out,4);

2 个答案:

答案 0 :(得分:2)

由于write使用指针,因此您需要提供一个地址。在一行中执行此操作的简单方法是编写辅助函数,如下所示:

inline void write(ostream& o, int n) {
    o.write(&n, sizeof(int));
}

现在你可以在一行上完成:

int foo() {
    ofstream ofs("aaa");
    write(ofs, 36);
    write(ofs, 42);
}

答案 1 :(得分:1)

不,没有办法。