cin、cin.get()、cin.getline()、getline()、gets()等函数的用法是怎样的
C++中的输入操作主要是通过cin、cin.get()、cin.getline()、getline()、gets()等函数实现的。这些函数的主要区别在于它们输入字符串时的处理方式和输入字符串的方式。
一、cin函数
cin函数是C++中常用的输入函数之一,可以读入标准输入设备(通常是键盘)的数据。cin函数通常用于读取单个数据,例如整型、浮点型、字符等,可以使用如下语句将输入的数字赋值给num:
int num; cin>>num;
此时,如果输入的是一个数字,则会将该数字赋值给num,如果输入的不是数字,则会导致输入失败。
二、cin.get()函数
cin.get()函数是c++中可以读入空格和回车的输入函数,通常用于读取一个字符。使用cin.get()读取一个字符时,不需要接收任何具体值:
char ch; cin.get(ch);
三、cin.getline()函数
cin.getline()函数可以读入一行数据,包括空格和回车符。
该函数的基本语法如下:
cin.getline(str, size, delim)
其中,str是一个字符数组名,用来存储输入的字符串;size是指最多读取的字符个数(包括'\0'),通常设为字符数组大小,即:
char str[5]; cin.getline(str, 5);
则最多只能读取长度为4的字符串,这是因为最后一个字符'\0'不算在内。delim参数表示分隔符,默认为'
',也就是回车符号。该函数每次读取一行字符,直到遇到'
'为止。
四、getline()函数
getline()函数与cin.getline()函数类似,也可以读入一行数据,包括空格和回车符。然而,getline()函数更加灵活,它可以读入一个字符串,并存到一个string类型的变量中。
该函数的基本语法如下:
getline(cin, str, delim)
其中,cin为输入流,str表示待读入的字符串,delim表示分隔符,也就是回车符号。
五、gets()函数
gets()函数在C语言中使用较为广泛,用于从标准输入读取一行字符。但是,由于该函数存在缓冲区溢出的风险,C++11中已经弃用了该函数。
总体而言,cin、cin.get()、cin.getline()、getline()、gets()等函数都是C++中常见的输入函数。虽然它们的功能相似,但是它们用法存在差异,很多情况下需要根据具体的需求选择合适的函数。
