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() ,则重抛该异常。

注解

此函数不对 signed charunsigned char 类型重载,不同于有格式的 operator<<

而且,不同于有格式输出函数,此函数在失败时不设置 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

参阅

插入字符数据
(函数)
插入字符
(公开成员函数)