scanf
首先来说scanf,scanf的返回值是int,返回我们成功读取到的数据的个数
,如果读到文件末尾的话就返回EOF
。
当然如果输入是很多个数,以0结尾,那么我们也可以这样判断:
while(scanf("%d" , &x) && x)
或者
while(cin >> x && x)
cin
当读到EOF或者读入类型不匹配时,结束读入。
返回值是读入了数据的一个新的流。
getline
返回值和cin的返回值相同。
注意如果先使用cin来读取的话,接下来如果需要使用getline读取,需要先将换行符读掉。
int a;
string line;
cin >> a;
getchar(); // 读掉换行符
getline(cin , line); // 再使用getline读取