C++ streambuf::snextc() 函数



C++ 的std::stringbuf::snextc()函数用于将输入序列向前移动一个字符,并返回当前位置的新字符。如果读取操作成功,则返回下一个字符;否则,返回traits_type::eof(),表示流的结尾或错误。

语法

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

int_type snextc();

参数

它不接受任何参数。

返回值

它返回受控输入序列中下一个位置的字符,使用成员traits_type::to_int_type将其转换为int_type类型的值。

异常

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

数据竞争

它修改流缓冲区对象。

示例 1

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

#include <iostream>
#include <sstream>
int main() {
   std::istringstream a("Vanakam");
   std::streambuf * b = a.rdbuf();
   char c = b -> snextc();
   std::cout << "Result : " << c << std::endl;
   return 0;
}

输出

以上代码的输出如下:

Result : a

示例 2

考虑以下示例,我们将循环遍历输入序列中的每个字符。

#include <iostream>
#include <sstream>
int main() {
   std::istringstream a("ATUTORIALSPOINT");
   std::streambuf * v = a.rdbuf();
   char c;
   while ((c = v -> snextc()) != std::char_traits < char > ::eof()) {
      std::cout << c << " ";
   }
   std::cout << std::endl;
   return 0;
}

输出

以上代码的输出如下:

T U T O R I A L S P O I N T 
streambuf.htm
广告