C++ basic_istream::peek() 方法

2024 年 8 月 29 日 | 4 分钟阅读

在本文中,您将学习 C++ 中 basic_istream::peek() 方法的语法、功能和示例。

什么是 basic_istream::peek() 方法?

在 C++ 中,可以使用 peek() 方法检查输入流中的下一个字符,而无需将其提取。它是输入流类 (std::basic_istream) 的成员函数。当检查输入流中的下一个字符以根据其 peek() 确定要执行的操作时,您经常使用 peek。

它通常用于解析算法、输入验证以及输入处理中特殊情况的处理。

语法

它具有以下语法:

int peek();

  • 该方法的返回类型是 int,它使用一个整数值来指示输入流中的下一个字符。
  • peek() 是该方法的名称。
  • 它不接受任何参数。

功能

可以使用 peek() 方法查看输入流中的下一个字符,而无需将其从流中移除。

它返回输入流中下一个字符的整数值,如果没有更多字符可用,则返回 EOF。

返回值

peek() 返回值中的整数表示流中的下一个字符,如果到达流的末尾,则表示 EOF。

它不会从流中移除字符;它只提供了一个前瞻。

特性

  • 由于 peek() 不会从输入流中消耗或移除字符,因此 下一次读取操作 返回的字符将是相同的。
  • 非破坏性过程意味着您可以在不推进流位置的情况下检查输入。
  • 当后续读取操作消耗 peek() 返回的字符时,该字符仍保留在输入流中。

示例-1

让我们举一个例子来说明 C++ 中的 basic_istream::peek() 方法。

输出

Enter a sentence: God is Great
Next character in input: G

说明

在此示例中,在提示您创建句子后,将窥视并打印输入流中的下一个字符。如果下一个字符是可打印的,则将打印字符本身。如果下一个字符(例如空格)无法打印,则将打印消息“此字符不可打印”及其 ASCII 值。当输入结束时,将显示消息“已到达输入结束”。

示例-2

让我们再举一个例子来说明 C++ 中的 basic_istream::peek() 方法。

输出

Enter a number: 8
You entered a number is: 8

说明

此 C++ 程序提示用户输入一个数字。之后,使用 std::cin peek() 方法检查输入流中的下一个字符,而无需将其提取。变量 Ch 存储 peek() 返回的值。之后,它使用 std::isdigit() 函数来确定 Ch 表示的字符是否为数字。如果是,程序使用 std::cin >> n 提取整数,并显示用户已输入数字字符。程序显示一条消息,验证输入的数字以及输入的数字,并将输入的数字存储在变量 n 中。但是,如果下一个字符不是数字,程序会输出一条消息,指出输入无效,因为它期望一个数字。最后,程序返回 0 以指示成功执行。

示例-3

让我们再举一个例子来说明 C++ 中的 basic_istream::peek() 方法。

输出

The first character in the word is: E
and the next character in the word is: n
after that next character in the word is: g

说明

在此示例中,使用 get() 函数 从流中提取字符,并使用 peek() 方法 检查输入流中的下一个字符,而无需提取它。这演示了 C++ 程序如何使用这些方法更改输入流。