C++ streambuf::gptr() 函数



C++ 的std::streambuf::gptr()函数用于返回指向流缓冲区输入序列中当前位置的指针。此函数允许访问正在读取的数据,方便执行诸如窥视或操作输入而不改变实际读取位置的操作。

语法

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

char* gptr() const;

参数

它不接受任何参数。

返回值

它返回一个指向受控输入序列的当前元素的指针(即“获取指针”)。

异常

如果抛出异常,流缓冲区不会发生任何变化。

数据竞争

它访问流缓冲区对象。

示例 1

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

#include <iostream>
#include <streambuf>
class x: public std::streambuf {
   public: x(char * a, std::streamsize size) {
      this -> setg(a, a, a + size);
   }
   char * getgptr() {
      return this -> gptr();
   }
};
int main() {
   char y[] = "Welcome";
   x sb(y, sizeof(y));
   char * c = sb.getgptr();
   if (c != nullptr) {
      std::cout << "Result : " << * c << std::endl;
   } else {
      std::cout << "Null." << std::endl;
   }
   return 0;
}

输出

以上代码的输出如下:

Result : W
streambuf.htm
广告