- 论坛徽章:
- 0
|
几行程序,几个疑难问题。
下面这几行程序的作用是,当我输入若干个数字以后,按下Ctrl+Z然后连续两次回车,cin就被中止了, cout输出全部内容。
istream_iterator<int>is(cin);
istream_iterator<int>intEOF;
vector<int>v;
copy(is,intEOF,back_inserter(v));
copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));
我的问题是:
(1)为什么不是一按下Ctrl+Z,cin就被中止,程序继续执行?
(2)为什么Ctrl+Z以后要再按下两次回车,而不是一次?
因为我发现,如果Ctrl+Z以后,不按回车再继续输入数字,效果是,按下一次回车前输入的数字被忽略,但是cin继续执行。
(3)为什么是Ctrl+Z而不是Ctrl+C, Ctrl+C我发现程序就退出了。Ctrl+Z有什么特殊的含义么?
(4)为什么copy(is,intEOF,back_inserter(v));当中,v的操作是用back_inserter,而不能用v.back()? |
|