编程中常常会用到连续多行输入的情况,如果事先知道要输入多少行的话,可以直接定义一个变量,然后用循环就可以实现了,但有时候事先并不知道,要输入多少行,于是就可以用到输入流碰到文件终止符的情况了,具体的操作就是ctrl+Z,然后按下回车键
程序例1
1 #include<iostream>
2 #include<string>
3 #include<vector>
4 using namespace std;
5
6 int main()
7 {
8 int num;
9 vector <int>nums;
10 while(cin>>num)
11 {
12 nums.push_back(num);
13 }
14 vector<int>::iterator it;
15 for(it=nums.begin();it!=nums.end();it++)
16 {
17 cout<<(*it)<<endl;
18 }
19
20 return 0;
21 }
程序例2
1 #include<iostream>
2 #include<string>
3 #include<vector>
4 using namespace std;
5
6 int main()
7 {
8 string q;
9 vector<string>save_q;
10 while(getline(cin,q))
11 {
12 save_q.push_back(q);
13 }
14 vector<string>::iterator it;
15 for(it=save_q.begin();it!=save_q.end();it++)
16 {
17 cout<<(*it)<<endl;
18 }
19 return 0;
20 }
程序例3
1 #include<iostream>
2 #include<string>
3 #include<vector>
4 using namespace std;
5
6 int main()
7 {
8
9 char * p;
10 vector<char *>save_p; //为什么用char * 就不能存进去值
11 p=new char[8];
12 while(cin.getline(p,8))
13 {
14 save_p.push_back(p);
15 p=new char[8];
16 }
17 vector<char *>::iterator it;
18 for(it=save_p.begin();it!=save_p.end();it++)
19 {
20 cout<<(*it)<<endl;
21 }
22
23
24
25 return 0;
26 }
程序例4
1 #include<iostream>
2 #include<string>
3 #include<vector>
4 using namespace std;
5
6 int main()
7 {
8
9 char p[100];
10 //vector<char *>save_p; //为什么用char * 就不能存进去值
11 vector<string>save_p;
12 while(cin.getline(p,8))
13 {
14 save_p.push_back(p);
15 //cout<<p<<endl;
16 }
17 //vector<char *>::iterator it;
18 vector<string>::iterator it;
19 for(it=save_p.begin();it!=save_p.end();it++)
20 {
21 cout<<(*it)<<endl;
22 }
23
24 return 0;
25 }
上面是四组测试程序,全部通过,但是第4四组,刚开始不小心写成了注释掉的那几行,结果总是错误,后来发现原因是这样的,char p[100]; 是在编译的时候就已经确定了p的地址,所以每次输入的时候都是在往同一个地址对应的地方存值,导致vector<char *>里面存的值也都是同一个地址里面的数,所以每次存新值的时候都把前面的覆盖掉了。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有