C++ streambuf::sputc() 函数



C++ 的std::streambuf::sputc()函数用于将单个字符插入缓冲区的输出序列。它接受一个字符作为参数,并将其附加到缓冲区。如果成功,它将返回插入的字符;否则,它将返回traits_type::eof()以指示错误。

语法

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

int sputc (char c);

参数

  • c − 表示要写入的字符。

返回值

成功时,返回写入的字符(int类型)。失败时,返回文件结束值 (EOF)。

异常

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

数据竞争

示例 1

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

#include <iostream>
#include <sstream>
int main() {
   std::string str = "AUTORIALSPOINT";
   std::stringbuf x(str, std::ios::in | std::ios::out);
   x.sputc('T');
   std::cout << x.str();
   return 0;
}

输出

上述代码的输出如下:

TUTORIALSPOINT

示例 2

考虑下面的示例,我们将使用 sputc() 函数在循环中修改字符。

#include <iostream>
#include <sstream>
int main() {
   std::string str = "Hello";
   std::stringbuf y(str, std::ios::in | std::ios::out);
   for (int i = 0; i < 5; ++i) {
      y.sputc('1');
   }
   std::cout << y.str();
   return 0;
}

输出

上述代码的输出如下:

11111

示例 3

让我们看下面的例子,我们将一起使用 pubseekpos() 和 sputc()。

#include <iostream>
#include <sstream>
int main() {
   std::string str = "Hi,Vanakam";
   std::stringbuf x(str, std::ios::in | std::ios::out);
   x.pubseekpos(2);
   x.sputc(' ');
   std::cout << x.str();
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出:

Hi Vanakam
streambuf.htm
广告