C++ getline整行读入以及使用stringstream 按分隔字符split出单词

问题:直接通过while(cin>>str), 遇到空格就会停止。比如,输入dfah adfj djfak只能输入前两个单词。
解决:

  1. 要读入一整行,需通过getline(cin, inputLine)读入。
  2. 按分隔符split字符串,使用getline(stringstream, string, char delimiter);

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main() {
    string inputLine;
    getline(cin, inputLine); // 输入一整行
    stringstream ss(inputLine);  // 用输入的一整行初始化stringstream
    string word;
    while(getline(ss, word, ' ')){  // 以空格作为delimiter
        cout<<word<<endl;
    }
    return 0;
}

posted on 2023-02-20 15:36  七昂的技术之旅  阅读(228)  评论(0编辑  收藏  举报

导航