65,211
社区成员
发帖
与我相关
我的任务
分享
为什么istringstream iss.get(chr);最后一个字符总是多输出一个?
#include <stdio.h>
#include <string>
#include <iostream>
#include <sstream>
#include <fstream>
using namespace std;
int main()
{
istringstream iss;
char chr;
iss.str("f");
while (1)
{
iss.get(chr);
printf("%c\n", chr);
cout << iss.eof() << endl;
if (iss.eof())
break;
}
}
f
0
f
1
#include <stdio.h>
#include <string>
#include <iostream>
#include <sstream>
#include <fstream>
using namespace std;
int main()
{
istringstream iss;
char chr;
iss.str("fxs");
while (1)
{
iss.get(chr);
printf("%c\n", chr);
cout << iss.eof() << endl;
if (iss.eof())
break;
}
}
f
0
x
0
s
0
s
1