在C++中,如果我们需要从流中读取少量句子,则通常首选的方法是使用getline()函数。它可以读取直到遇到换行符或看到用户提供的定界符。
这是C++中的示例程序,该程序读取四个句子并在最后显示“:newline”
// A simple C++ program to show working of getline
#include
#include
using namespace std;
int main()
{
string str;
int t = 4;
while (t--)
{
// Read a line from standard input in str
getline(cin, str);
cout << str << " : newline" << endl;
}
return 0;
}
样本输入:
This
is
Geeks
for
如预期的输出是:
This : newline
is : newline
Geeks : newline
for : newline
上面的输入和输出看起来不错,当输入之间有空白行时可能会出现问题。
样本输入:
This
is
Geeks
for
输出:
This : newline
: newline
is : newline
: newline
它不打印最后两行。原因是即使未读取任何字符,getline()也会读取直到遇到enter。因此,即使第三行没有任何内容,getline()也会将其视为单行。进一步观察第二行中的问题。
可以修改代码以排除此类空白行。
修改后的代码:
// A simple C++ program that uses getline to read
// input with blank lines
#include
#include
using namespace std;
int main()
{
string str;
int t = 4;
while (t--)
{
getline(cin, str);
// Keep reading a new line while there is
// a blank line
while (str.length()==0 )
getline(cin, str);
cout << str << " : newline" << endl;
}
return 0;
}
输入:
This
is
Geeks
for
输出:
This : newline
is : newline
Geeks : newline
for : newline
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。