文件写入,插入操作符和写入函数的区别
File writing, difference in insertion operator and write function?
我想知道插入操作符(<<)和函数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。更多信息,请看这里。
<<
已格式化和未格式化。
相关文章:
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- 在 const 函数中通过引用和指针返回之间的区别
- 析构函数和'delete'之间的区别
- 函数签名与调用的函数不匹配,常量字符[]和字符*之间的区别?
- 在 C 和 C++ 中作为函数参数,int **a 和 int a[][] 之间有什么确切的区别
- 定义类模板构造函数的两种方法之间的区别
- 仅具有运算符()的结构和普通函数之间的实际区别
- 当两者都调用时,删除和析构函数之间的区别?
- 为什么C++不允许两个同名的函数/类模板,区别仅在于非类型模板参数(整型)的类型?
- Release() 和析构函数之间的区别?
- 在调用函数时,ptr** 和 ptr*& 之间是否有区别,或者首选C++?
- 调用 "project" 函数和调用 DLL 函数之间的区别
- cv2有什么区别.StereoSGBM_create() 和 cv2.StereoBM_create() 函数用于 Op
- 将复制构造函数设置为private和=delete有什么区别
- 函数隐藏和重载之间的区别
- 使用 std::move 将参数传递给函数,如果该参数声明为按值传递或使用移动操作数 &&,是否有区别?
- C 函数中的静态和 C++ 中类中的静态之间的区别?
- 打印一个带有静态 int 的函数,有一个 std::cout 和多个 std::cout 有什么区别?
- 将函数作为参数传递的两种方式之间的区别
- c++中接口和实现文件的显式函数区别