std::operator<<,>>

来自cppreference.com
< cpp‎ | string‎ | basic string

 
 
 
std::basic_string
非成员函数
operator<<operator>>
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
帮助类
推导指引(C++17)
 
定义于头文件 <string>
template <class CharT, class Traits, class Allocator>

std::basic_ostream<CharT, Traits>&
    operator<<(std::basic_ostream<CharT, Traits>& os,

               const std::basic_string<CharT, Traits, Allocator>& str);
(1)
template <class CharT, class Traits, class Allocator>

std::basic_istream<CharT, Traits>&
    operator>>(std::basic_istream<CharT, Traits>& is,

               std::basic_string<CharT, Traits, Allocator>& str);
(2)
1)
首先,构建一个std::basic_ostream::sentry对象,它刷新了tie()“D流,如果必要的,检查错误。如果哨兵对象返回false,立即退出.
原文:
First, constructs a std::basic_ostream::sentry object, which flushes the tie()'d stream if necessary and checks for errors. If the sentry object returns false, exits immediately.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
此后,如果哨兵对象返回true,确定的输出格式中相同的方式作为第3阶段的num_put::put()填充.
原文:
Afterwards, if the sentry object returns true, determines the output format padding in the same manner as stage 3 of num_put::put().
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
然后将每个字符序列(str加填充的内容)到输出流os,仿佛调用os.rdbuf()->sputn(seq, n)n=std::max(os.width(), str.size())
原文:
Then stores each character from the resulting sequence (the contents of str plus padding) to the output stream os as if by calling os.rdbuf()->sputn(seq, n), where n=std::max(os.width(), str.size())
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
最后,调用os.width(0).
原文:
Finally, calls os.width(0).
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
2)
首先,构建std::basic_istream::sentry对象,刷新了tie()'D如果有必要,提取物和丢弃所有前导空格字符流,除非ios_base::skipws标志被清除,并检查错误。如果哨兵对象返回false,立即退出.
原文:
First, constructs a std::basic_istream::sentry object, which flushes the tie()'d stream if necessary, extracts and discards all leading whitespace characters unless the ios_base::skipws flag was cleared, and checks for errors. If the sentry object returns false, exits immediately.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
此后,如果哨兵对象返回true,清除strstr.erase()
原文:
Afterwards, if the sentry object returns true, clears str with str.erase()
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
然后读取字符is并把它们添加str如果由str.append(1, c)下列条件之一的,直到成为真正的:
原文:
Then reads characters from is and appends them to str as if by str.append(1, c), until one of the following conditions becomes true:
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
  • N个字符,其中Nis.width()如果is.width() > 0,否则Nstr.max_size()
    原文:
    N characters are read, where N is is.width() if is.width() > 0, otherwise N is str.max_size()
    文本通过谷歌翻译机器翻译。
    你可以帮忙校正和验证翻译。点击此处查看指示。
  • 文件结束的条件发生在流is
    原文:
    the end-of-file condition occurs in the stream is
    文本通过谷歌翻译机器翻译。
    你可以帮忙校正和验证翻译。点击此处查看指示。
  • std::isspace(c,is.getloc())是真正的下一个字符cis(这个空白字符留在输入流中).
    原文:
    std::isspace(c,is.getloc()) is true for the next character c in is (this whitespace character remains in the input stream).
    文本通过谷歌翻译机器翻译。
    你可以帮忙校正和验证翻译。点击此处查看指示。
如果没有字符被提取,然后std::ios::failbit上设置is,这可能会引发std::ios_base::failure.
原文:
If no characters are extracted then std::ios::failbit is set on is, which may throw std::ios_base::failure.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
最后,调用os.width(0)和破坏std::basic_istream::sentry对象.
原文:
Finally, calls os.width(0) and destroys the std::basic_istream::sentry object.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 例外

1)
如果抛出一个异常输出过程中,可能会引发std::ios_base::failure.
原文:
may throw std::ios_base::failure if an exception is thrown during output.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
2)
可能会引发std::ios_base::failure乃摘录自is如果没有字符(如流位于文件末尾的空白,或由只),或在输入过程中,如果抛出一个异常.
原文:
may throw std::ios_base::failure if no characters are extracted from is (e.g the stream is at end of file, or consists of whitespace only), or if an exception is thrown during input.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 参数

os -
字符输出流
原文:
a character output stream
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
is -
字符输入流
原文:
a character input stream
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
str -
字符串被插入或提取
原文:
the string to be inserted or extracted
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

1) os

2) is

[编辑] 示例

#include <iostream>
#include <string>
 
int main()
{
    std::string greeting = "Hello, whirled!"
    std::cout << greeting << '\n';
}

输出:

Hello, whirled!