CppDS.com

C++ 98 11 14 17 20 手册

std::basic_istream<CharT,Traits>::peek

来自cppreference.com
< cpp‎ | io‎ | basic istream
 
 
 
 
int_type peek();

表现为无格式输入函数 (UnformattedInputFunction) 。构造并测试 sentry 对象后,从输入流读取下个字符而不释出它。

参数

(无)

返回值

good() == true ,则返回获得自 rdbuf()->sgetc() 的下个字符。

否则,返回 Traits::eof()

异常

若出现错误(错误状态标志不是 goodbit )并且设置了 exceptions() 为对该状态抛出则为 failure

若内部操作抛出异常,则捕获它并设置 badbit 。若对 badbit 设置了 exceptions() ,则重抛该异常。

示例

#include <sstream>
#include <iostream>
int main()
{
    std::istringstream s1("Hello, world.");
    char c1 = s1.peek();
    char c2 = s1.get();
    std::cout << "Peeked: " << c1 << " got: " << c2 << '\n';
}

输出:

Peeked: H got: H

参阅

从输入序列读取一个字符,而不令序列前进
(std::basic_streambuf<CharT,Traits> 的公开成员函数)
从流中读并取走(移除类似指针向下一个元素移动)一个字符
(公开成员函数)
撤销流中刚取走(移除,类似指针向后退回一个位置)的字符
(公开成员函数)
关闭