任何机构可以解释为什么我的下面的代码总是给-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;
}
答案 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
。