[streambuf.pub.put] # 31 Input/output library [[input.output]](./#input.output) ## 31.6 Stream buffers [[stream.buffers]](stream.buffers#streambuf.pub.put) ### 31.6.3 Class template basic_streambuf [[streambuf]](streambuf#pub.put) #### 31.6.3.3 Public member functions [[streambuf.members]](streambuf.members#streambuf.pub.put) #### 31.6.3.3.5 Put area [streambuf.pub.put] [🔗](#lib:sputc,basic_streambuf) `int_type sputc(char_type c); ` [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3394) *Effects*: If the output sequence write position is not available, returnsoverflow(traits​::​to_int_type(c))[.](#1.sentence-1) Otherwise, stores c at the next pointer for the output sequence, increments the pointer, and returnstraits​::​to_int_type(c)[.](#1.sentence-2) [🔗](#lib:sputn,basic_streambuf) `streamsize sputn(const char_type* s, streamsize n); ` [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3411) *Returns*: xsputn(s, n)[.](#2.sentence-1)