的std ::的strstreambuf :: sbumpc();总是给-1

时间:2014-08-27 15:53:43

标签: c++

任何机构可以解释为什么我的下面的代码总是给-1吗?感谢

#include <cstdlib>
#include <cstring>
#include <strstream>
#include <iostream>


int main(int argc, char *argv[])
{
        {
                char a[20] = {"abcde"};
                std::strstreambuf sb0(a, 10, a);
                std::cout<<sb0.sbumpc()<<std::endl;
        }

return 0;
}

1 个答案:

答案 0 :(得分:1)

a用作输出缓冲区。例如,cppreference给出了这个例子:

char buf[10];
std::strstreambuf user(buf, 10, buf); // user-provided output buffer
std::ostrstream user_s(buf, 10); // equivalent stream
user_s << 1.23 << std::ends;
std::cout << buf << '\n';

同样,不使用ostrstream,您可以看到以下示例:

char a[20];
std::strstreambuf sb0(a, 10, a);
sb0.sputc('a');
a[1] = '\0';
std::cout<<a<<std::endl;

输出a