命名空间
变体
操作

std::basic_ostream<CharT,Traits>::write

来自 cppreference.com
< cpp‎ | io‎ | basic ostream
 
 
 
 
basic_ostream& write( const char_type* s, std::streamsize count );

行为类似于 UnformattedOutputFunction。在构造和检查 sentry 对象后,输出从字符数组中连续位置的字符,该字符数组的第一个元素由 s 指向。字符被插入到输出序列中,直到以下情况之一发生:

  • 插入了正好 count 个字符
  • 插入到输出序列失败(在这种情况下,将调用 setstate(badbit))。

内容

[编辑] 参数

s - 指向要写入的字符字符串的指针
count - 要写入的字符数

[编辑] 返回值

*this

[编辑] 异常

如果发生错误(错误状态标志不是 goodbit),并且 exceptions() 设置为对该状态抛出异常,则抛出 failure 异常。

如果内部操作抛出异常,则会捕获该异常,并将设置 badbit。如果为 badbit 设置了 exceptions(),则会重新抛出异常。

[编辑] 注释

与格式化的 operator<< 不同,此函数不会为类型 signed charunsigned char 重载。

此外,与格式化输出函数不同,此函数不会在失败时设置 failbit

当使用非转换区域设置(默认区域设置是非转换区域设置)时,std::basic_ofstream 中此函数的重写者可能会针对零复制批量 I/O 进行优化(通过重写 std::streambuf::xsputn)。

[编辑] 示例

此函数可用于输出对象表示,即二进制输出

#include <iostream>
 
int main()
{
    int n = 0x41424344;
    std::cout.write(reinterpret_cast<char*>(&n), sizeof n) << '\n';
 
    char c[] = "This is sample text.";
    std::cout.write(c, 4).write("!\n", 2);
}

可能的输出

DCBA
This!

[编辑] 另请参阅

插入字符数据或插入到右值流
(函数模板) [编辑]
插入一个字符
(公有成员函数) [编辑]