文件写入,插入操作符和写入函数的区别

File writing, difference in insertion operator and write function?

本文关键字:函数 区别 插入 文件 操作符      更新时间:2023-10-16

我想知道插入操作符(<<)和函数write ()之间的区别是什么,因为下面给出的行代码

outFile << "Hello world";

outFile.write("Hello world");         

当我试图在文本文件中写入字符串"Hello world"时,这两个都达到了我想要的结果。这两者有什么区别呢?当插入操作符可以在文件中写入时,为什么我们需要write()函数?

那么这两者有什么区别呢?

主要的区别是第二个不能编译。write有两个参数,用于写入已知大小的字符序列:

outFile.write("Hello world", 11);

当你已经有一个包含你想要输出的字符序列的数组时,使用这个未格式化的输出

对于格式化的输出,插入操作符用于格式化许多不同的类型(包括以零结尾的字符串,如您的示例中所示)。例如:

outFile << "Hello world";  // outputs the string (no need to specify the size)
outFile << 42;             // outputs "42", formatting the integer as text

write()是非格式化输出,只接受一个const char *和int。它也不会在失败时设置failbit。更多信息,请看这里。

操作符<<已格式化和未格式化。