请问C++中skipws、ws两者有什么区别?
1个回答
展开全部
skipws的意思是在用>>读取数据之前跳过空格(此时空格依然存在),ws的意思是读取后面的所有空格(空格被跳过)。下面是个示例,你可以揣摩一下:
#include <iomanip>
#include <iostream>
#include <sstream>
using namespace std;
int main(){
istringstream istr(" 123 - 123");
int a;
istr >> noskipws >> a;
if (!istr){
cerr << "读取错误\n";
istr.clear();
}
istr >> skipws >> a;
cout << "a = " << a << "\n";
char c;
if (istr.get(c), c != '-'){
cerr << "不是-\n";
istr.unget();
}
if ((istr >> ws).get(c), c == '-'){
istr >> a;
cout << "a = " << a << "\n";
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询