2017-07-18 36 views
-2

假設我有閱讀以下輸入:如何從線C++中提取兩個字符串

dog ogday 
cat atcay 
pig igpay 
froot ootfray 
loops oopslay 
str1 str2 

atcay 
ittenkay 
oopslay 

所以我無法單獨存放所有字符串。 繼承人我可以拿出代碼的一部分。

while(1) 
{ 
    getline(cin,s); 
    if(s.empty()) 
     break; 
    else 
     cout<<s<<endl; 
} 

所以現在我可以在一個字符串中存儲「dog ogday」。但我想將它們存儲在單獨的字符串中。請幫助(在此先感謝:d)。

+1

您是否聽說過「>>」?你通常在getline之前瞭解它。 – molbdnilo

回答

2

使用cin獲得兩個字符串:

string a,b; 
    cin >> a >> b; 
0
int i=0; 
while(i<9){ 
    getline(cin,s); 
    if(s.empty()) 
    break; 
    else 
    cout<<s<<endl; 
    i++; 
    } 

不知道這是否你想要什麼,但我想它會讓你存儲所有9串。

+0

魔法數字9 ...另外,您應該先測試您的代碼。 – cppxor2arr

0

這將分別讀取所有「單詞」(用空格分隔)。

#include <iostream> 
#include <string> 
#include <sstream> 

int main() 
{ 
    for (std::string s; std::getline(std::cin, s) && !(s.empty() || s.find_first_not_of(' ') == std::string::npos);) 
    { 
     std::istringstream stream{s}; 
     for (std::string str; stream >> str; std::cout << str << '\n'); 
    } 
}