文件写入,插入操作符和写入功能的区别?

时间:2014-07-02 11:26:12

标签: c++

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

outFile << "Hello world";

并且

outFile.write("Hello world");         

当我尝试在文本文件中编写字符串“Hello world”时,这两个都为我取得了预期的结果。那么这两者有什么区别? 为什么我们在插入操作符可以写入文件时需要write()函数?

2 个答案:

答案 0 :(得分:1)

write()是未格式化的输出,只需要const char *和int。它也不会在失败时设置failbit。有关更多信息,请查看here。运算符<<具有格式化和未格式化的重载。

答案 1 :(得分:0)

  

那么这两者之间有什么区别?

主要区别在于第二个不会编译。 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