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。如果 exceptions() 设置了 badbit,那么就会重抛该异常。

[编辑]注解

不同于有格式的 operator<<,此函数不对 signedcharunsignedchar 类型重载。

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

[编辑]参阅

插入字符数据,或向右值流插入
(函数)[编辑]
插入字符
(公开成员函数)[编辑]
close