如何从一行c ++

时间:2017-07-18 11:24:34

标签: c++ string input cin getline

假设我必须阅读以下输入:

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;
}

所以现在我可以存储&#34; dog ogday&#34;在一个字符串中。但我想将它们存储在单独的字符串中。求助。(提前致谢:D)

3 个答案:

答案 0 :(得分:1)

使用cin获取两个字符串:

  string a,b;
  cin >> a >> b;

答案 1 :(得分:0)

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

不确定这是否是您想要的,但我认为它会让您存储所有9个字符串。

答案 2 :(得分:0)

这会读取所有&#34;单词&#34; (用空格分隔)。

#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');
    }
}