C++下ctrl+z退出cin输入循环

测试的语言及工具

C++
visual studio 2017

for循环

这是我们学校上课提供的C++教材书(C++语言程序设计–刘瑞芳)上的例子,看得我一脸懵逼,于是进行了这次测试
代码如下

	int value=0, sum=0;
	for (; cin >> value;)
		sum += value;

测试结果:
for循环测试结果

while循环

while循环里面总不能什么都不做吧,于是放了个cout<<i
代码如下

	int a[10], i(0);
	while (cin>>(a[i])) {
   
   
		cout << "i的值为" << i << endl;
		i++;
	}

测试结果:
在这里插入图片描述
结论:while可以通过ctrl+z结束循环

do while循环

first trying 失败
代码如下

	int a[10], i(0);
	cin >> (a[i]);
	do{
   
   
		cin >> (a[i]);
	} while (true);

测试结果:
在这里插入图片描述
结果分析
while(true)死循环
emmmm貌似不是真正原因,真正原因再与ctrl+z后卡死,不能输入,也没有结束,蒙圈
接下来查资料时间,查阅多方资料后发现一个很在理,ctrl+z结束输入流,Ta说的其他的原因分析就懂不大起了
在另外一些人的资料中还发现个好东西,ctrl+z相当于EOF(别人说的,自己测试了,非也)
也就是说之前的我并没有理解到ctrl+z退出循环的精髓,其实是输入后判断ctrl+z(目前知识水平只允许我这样理解 啊哈) 所以代码应该这样写:

second trying
代码如下

	int a[10], i(0
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值