sungetc
描述 (Description)
它用于减小当前位置,并尝试将受控输入序列的当前位置指示器移回一个位置,返回到当前位置之前的字符,使得该位置的字符再次可用于下一个输入操作。
声明 (Declaration)
以下是std :: streambuf :: sungetc的声明。
int sungetc();
参数 (Parameters)
没有
返回值 (Return Value)
它返回受控输入序列的新当前字符的值,作为int类型的值。
异常 (Exceptions)
Basic guarantee - 如果抛出异常,则流缓冲区处于有效状态。
数据竞争 (Data races)
它修改了流缓冲区对象。
例子 (Example)
在下面的例子中解释了std :: streambuf :: sungetc。
#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->sungetc ();
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: