经常遇到循环输入,直到符合某种条件时结束输入。

cin>>s是有返回值的,只要s满足类型条件,就会return true,一直执行下去,而cin会忽略空格或者enter,因此,enter后不会结束循环。只能ctrl+Z

其实很简单:通过get()判断下一个输入是不是回车就行。

while(cin>>a){
    ...
    if(cin.get()=='\n') break;
} 

举个例子:

#include <bits/stdc++.h>
using namespace std;
 
int b[10];
int main() 
{
	int i=0,a;
	while(cin>>a){
		b[i++]=a;
    	if(cin.get()=='\n') break;	
	} 
	for(i=0;i<10;i++) cout<<b[i]<<" ";
}

洛谷浅基,Noip2018普及组题解:标题统计(C++)