1.输入数据数量不确定
指预先不知道输入的数据数量,需要不断的读取数据直到没有新输入为止。
例:输入不定数字求和
#include<iostream>
int main(){
int sum = 0;
int value = 0;
while(std::cin >> value){
sum += sum;
}
std::cout << sum << std::endl;
return 0;
}
检测cin流的状态,把其放入while语句中进行判定,若其流有效则为真,继续执行。若流无效则输入数据结束。能让流无效的情况有:
1)采用iostream时,遇到文件结束符(window下ctrl+z,lunix下ctrl+d);
2)输入数据类型不正确(本例中,不是int类型时);
当流无效时,istream对象为假。
2.输入多个变量信息
例:`
#include<iostream>
int main(){
int val1 = 0;
int val2 = 0;
std::cin >> val1 >> val2 ;
std::cout << val1 <<" "<< val2 << std::endl;
return 0;
}
以空格为分隔符,直到检测到非空值。若输入数据数量大于设定参数量,则会取前两个。
3.输入数据为二维数组时
可以定义一个vector二维数组类型,利用for循环输入。
4.使用getline读取一行数据
getline遇到换行符终止,输出的数据中不包含换行符输入(string类型)。
#include<iostream>
#include <string>
using namespace std;
int main(int argc, const char** argv) {
string str;
while (getline(cin,str)){
cout << str << endl;
}
return 0;
}