level 5
koko2015
楼主
#include <iostream>
#include <string>
using std::cout;
using std::endl;
uisng std::getline;
int main()
{
string line;
while (getline(cin , line))
cout << line << endl; //运行结果??????
return 0;
}
屏幕上输入输出情况如下:
first(回车)
second(回车)
first
third(回车)
second
...
书上对getline函数的说明是从输入流的下一行读取直到遇到换行,这样的话"first"就应该没有赋给对象line,直接舍掉了,第一次line接收并输出应该是"second",怎么会隔行输出?而且"first"也没舍掉。
按照屏幕上的情况,只能说line通过getline函数先接收了"first"了?然后再次输入,这时line先输出"first"再接收"second"了?但是连续两次输入说明第一次输入是没有进循环的,第一次和第二次输入实在没想过来……请教高手解答。
2010年03月28日 14点03分
1
#include <string>
using std::cout;
using std::endl;
uisng std::getline;
int main()
{
string line;
while (getline(cin , line))
cout << line << endl; //运行结果??????
return 0;
}
屏幕上输入输出情况如下:
first(回车)
second(回车)
first
third(回车)
second
...
书上对getline函数的说明是从输入流的下一行读取直到遇到换行,这样的话"first"就应该没有赋给对象line,直接舍掉了,第一次line接收并输出应该是"second",怎么会隔行输出?而且"first"也没舍掉。
按照屏幕上的情况,只能说line通过getline函数先接收了"first"了?然后再次输入,这时line先输出"first"再接收"second"了?但是连续两次输入说明第一次输入是没有进循环的,第一次和第二次输入实在没想过来……请教高手解答。