一、getline()1、从屏幕读入切分不会跳出while。会一直等待输入换行无效string s; while(getline(cin, s)) { // 默认按空格切分 cout s endl; } string s; while(getline(cin, s, .)) { // 按.切分 cout s endl; } string s; while(getline(cin, s, .)) { // 按 空格 和 . 切分 cout s endl; }2、从屏幕读入一行切分会跳出while。string s; getline(cin, s); stringstream sscin(s); while(getline(sscin, s)) { // 默认按空格切分 cout s endl; } string s; getline(cin, s); stringstream sscin(s); while(getline(sscin, s, .)) { // 按.切分 cout s endl; } string s; getline(cin, s); stringstream sscin(s); while(getline(sscin, s, .)) { // 按 空格 和 . 切分 cout s endl; }二、版本比较版本: x.x.x.x返回最小版本。#include iostream #include vector #include string #include sstream #include climits #include algorithm using namespace std; /* 输入 3, 4.3.5.4, 2.10.3, 2.4 最小版本 2.4 */ int main() { vectorint minver(4, INT_MAX); //最小版本号初始化 int len 0; //最小版本号长度 0len4 //将cin读到另一个流scin中否则while跳不出去 string s; getline(cin, s); stringstream scin(s); //版本号比较 while(getline(scin, s, ,)) { //按版本号切分 //cout # s # endl; vectorint temp(4, 0); int k 0; stringstream sv(s); while(getline(sv, s, .)) { //按数字切分 //cout s endl; stringstream sn(s); int x; sn x; temp[k] x; //cout x endl; } for(int i0; i4; i) { //比较 if(temp[i] minver[i]) { minver temp; len k; break; } } } //输出最小版本号 for(int i0; ilen-1; i) { cout minver[i] .; } cout minver[len-1]; getchar(); return 0; }