如何将指定行数作为输入?

Sof*_*kat 6 c++ string

cin>>string输入直到空格或新线.但getline(cin,string)需要输入直到换行.再次,getline(cin,string,'c')输入直到'c'.有没有办法忽略一些'\n'字符并将指定数量的行作为输入?

我尝试了下面的代码,但它没有用

int main()
{
   string a;
   for(int i=0;i<4;i++)
   {
       getline(cin,a);//take string input 
   }
   cout<<a;
}
Run Code Online (Sandbox Code Playgroud)

这里有以下输入

 ksafj kfaskjf(\n)1st
 uuiiuo akjfksad(\n)2nd
 ksafj kasfj(\n)3rd
 asdfed kkkl(\n) when the 4th enter comes input terminate
Run Code Online (Sandbox Code Playgroud)

字符串a只有"asdfed kkkl".我希望它能容纳所有字符,包括行尾(\n).

ere*_*non 10

你想获得前n行吗?

std::string get_n_lines(std::istream& input, const std::size_t n)
{
  std::ostringstream result;
  std::string line;
  std::size_t i = 0;

  while (std::getline(input, line) && i < n)
  {
    result << line << '\n';
    ++i
  }

  return result.str();
}

std::string first_4_lines = get_n_lines(std::cin, 4);
Run Code Online (Sandbox Code Playgroud)