命名空间
变体
操作

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

来自 cppreference.cn
< 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<< 不同,此函数没有为类型 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!

[编辑] 参阅

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