C++ streambuf::sputbackc() 函数



C++ 的std::streambuf::sputbackc()函数用于将字符放回到流缓冲区的输入序列中。此函数通常用于自定义流操作,当读取一个字符但需要将其取消读取时。

此函数在成功时返回被放回的字符,如果操作失败则返回traits::eof()。

语法

以下是std::streambuf::sputbackc()函数的语法。

int_type sputbackc (char_type c);

参数

  • c − 要放回的字符。

返回值

此函数返回放回的字符的值,其类型为int。

异常

如果抛出异常,则流缓冲区处于有效状态。

数据竞争

它修改流缓冲区对象。

示例1

在下面的示例中,我们将考虑sputbackc()函数的基本用法。

#include <iostream>
#include <sstream>
int main() {
   std::stringbuf a("Welcome");
   char b = a.sbumpc();
   std::cout << "First character: " << b << std::endl;
   a.sputbackc(b);
   char c = a.sbumpc();
   std::cout << "Character after putback: " << c << std::endl;
   return 0;
}

输出

以上代码的输出如下:

First character: W
Character after putback: W

示例2

考虑以下示例,我们将使用sputbackc()函数替换第一个字符。

#include <iostream>
#include <sstream>
int main() {
   std::stringbuf x("Hi");
   char y = x.sbumpc();
   std::cout << "First character: " << y << std::endl;
   x.sputbackc('A');
   char z = x.sbumpc();
   std::cout << "Character after putback: " << z << std::endl;
   return 0;
}

输出

以下是以上代码的输出:

First character: H
Character after putback: A
streambuf.htm
广告