C++ streambuf - sputbackc
描述
它用于放回字符,并尝试将受控输入序列的当前位置指示符移回当前字符之前的字符。
声明
以下是 std::streambuf::sputbackc 的声明。
int sputbackc (char c);
参数
c − 要放回的字符。
返回值
它返回放回字符的值,作为 int 类型的值。
异常
Basic guarantee − 如果抛出异常,则流缓冲区处于有效状态。
数据竞争
它修改流缓冲区对象。
示例
在下面的例子中解释了 std::streambuf::sputbackc。
#include <iostream> #include <cstdio> int main () { char ch; std::streambuf * pbuf = std::cin.rdbuf(); std::cout << "Please, enter some letters and then a number: "; do { ch = pbuf->sbumpc(); if ( (ch>='0') && (ch <='9') ) { pbuf->sputbackc (ch); long n; std::cin >> n; std::cout << "You entered number " << n << '\n'; break; } } while ( ch != EOF ); return 0; }
让我们编译并运行上面的程序,这将产生以下结果 −
Please, enter some letters and then a number: