天天看點

用stringstream分割字元串遇到的一個奇怪的事情

#include<bits/stdc++.h>
using namespace std;
int main()
{
//	freopen(".../.txt","w",stdout);
	ios::sync_with_stdio(false);
	string suffix[1000];
	string s;
	getline(cin,s);
	sulen=0;
	stringstream ss(s);
	while(ss>>suffix[sulen++])
	cout<<'|'<<suffix[sulen-1]<<'|'<<endl;
	cout<<sulen<<endl;
	
	return 0;
}
           

代碼很簡單,就是将輸入的字元串,用空格作為分隔符,将字元串提取出來。

比如:

//輸入
wo lei ge qu
//輸出
wo
lei
ge
qu
           

但是令我不解的是sulen的長度竟然是5

用stringstream分割字元串遇到的一個奇怪的事情

後來我才想明白,盡管ss輸出到了最後,仍然執行了一次

語句,隻不過該語句的傳回值為假!!!!

繼續閱讀