在向量<string>中存储两个间隔字符串

Ryu*_*aki 3 c++ string vector cin

最近我遇到了一个问题但在此之前我会告诉你什么是参考

考虑这个计划

 #include<bits/stdc++.h>

 using namespace std;

 int main()
 {
   vector<string> RS;
   string word;
   while(cin>>word)
    RS.push_back(word);
 }
Run Code Online (Sandbox Code Playgroud)

此代码将间隔字符串中的每个单词存储在向量中

但问题来了.....

 #include<bits/stdc++.h>

 using namespace std;

 int main()
 {
   vector<string> RS,FS;
   string word;

   while(cin>>word)
    RS.push_back(word);

   while(cin>>word)
    FS.push_back(word);
 }
Run Code Online (Sandbox Code Playgroud)

这里的动机是将第一行的字符串字存储在RS中,将第二行的字符串字存储在FS矢量中

但它不会在一行结束时停止并将所有单词存储在RS中并且FS保持为空.

请建议一种正确执行相同程序的方法,或者如果您知道更有效的方式,那么您不仅仅是欢迎

提前致谢

Sau*_*ahu 5

使用getlineistringstream,分别为每个句子,然后push_back其中的每个单词:

  string line;
  getline(cin, line);  //Get sentence 1
  istringstream iss1(line);
  while ( iss1 >> word) {    
    RS.push_back(word);
  }
  getline(cin, line);  //Get sentence 2
  istringstream iss2(line);
  while ( iss2 >> word) {    
    FS.push_back(word);
  }
Run Code Online (Sandbox Code Playgroud)

换行字符("\n")充当定界符getline().