首先明确cin的特点:①遇到空格,换行符等空白字符作为一个数据的结束。
②输入完数据按回车键即执行。
③输入类型取决于变量被定义的类型(int,double,char,string等)
一、cin.get函数对应char
(1)输入常数
cin.get()提取一个字符
与getchar函数功能相同
(2)输入并赋给一个参数
cin.get(x)提取一个字符并赋给变量x
(3)输入并赋给字符数组
cin.get(x,n,终止字符)读取n-1个字符赋给字符串数组(x应为数组名)
二、cin.getline函数对应char
cin.getline(x,n,终止字符)读取一行字符中的前n-1个赋给x
三、gets函数对应char
gets(x)读取一行字符赋给x字符数组
四、getline函数对应string
getline(cin,x,终止字符)终止字符可省略,默认'\n',读取一行字符赋给x
不难看出,函数各具特点,gets简单粗暴,没什么要求,但由于其安全性C11委员会已将其废除,能不用尽量不用;cin.根据类型不同语法不同;cin.getline要求多;getline特殊对应string类型。
当我们需要考虑输入时,大多是输入量不明确,比如输入一行输入一个句子,中间有空格。而在处理输入时常常有需要长度,所以给出一种常用形式:
char str[N];
int i=0;
while((str[i]=getchar())!='\n'){ //存在str字符数组中
i++; //最终数组长度为i(从0开始)
}