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;
}
此处输入以下内容
ksafj kfaskjf(\n)1st
uuiiuo akjfksad(\n)2nd
ksafj kasfj(\n)3rd
asdfed kkkl(\n) when the 4th enter comes input terminate
字符串a
仅保留"asdfed kkkl"
。我希望它能容纳所有字符,包括行尾(\n
)。
答案 0 :(得分: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);