我想知道插入运算符(<<<<)和函数 write()之间的区别是什么,因为下面给出的代码行
outFile << "Hello world";
并且
outFile.write("Hello world");
当我尝试在文本文件中编写字符串“Hello world”时,这两个都为我取得了预期的结果。那么这两者有什么区别? 为什么我们在插入操作符可以写入文件时需要write()函数?
答案 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