C++中:cin,cin.getline(),getline()的用法

C++中:cin,cin.get(),cin.getline(),**getline()**的用法

C++输入过程中,是把输入加载到缓冲区中,然后对缓冲区中的字符进行读取。

1、转义字符:

常用的转义字符有:’/0’, ‘/n’, ‘/t’;
其中:
**’/0’**为空字符,相当于空格键,作为字符串结束符使用;
**’/n’**为换行符,作为输出结束符使用;
**’/t’**为水平制表符,相当于tab键

例如:
对于一个字符串,例如“hello”,它是由字符“h e l l o /0”,在内存中连续存放。

2、cin的用法

a.连续输入多个字符或者数字
b.输入一个字符串,以“空格”、“回车”、“tab”键结束。

程序示例:

#include 
using namespace std;
int main()
{
	char ch[10];
	cin >> ch;
	cout << ch << endl;
	return 0;
}

输入输出结果为:
在这里插入图片描述
可以看出,空格后的字符串“sdf”并没有被输出。

若变量是数组,在没有空格、回车、tab键的情况下,输入字符长度要小于等于数组长度

3、cin.get()的用法

cin.get()在缓冲区遇到回车,空格,tab键也会作为字符留在缓冲区,即回车,空格,tab键也可以输出。

语法规则:
a.一参数:cin.get(变量名)
b.二参数:cin.get(字符串数组变量名,字符串长度)
c.三参数:cin.get(字符串数组变量名,字符串长度,标志结束字符)

其中:二参数和三参数的情况下,变量必须为char类型数组。即变量定义为:

char 变量名[n];

程序示例:

a.一参数:
这种单字符的输入是把字符的ASCII码值存入变量中。
当输入字符足够后回车结束输入。当输入过多时,取前几个

#include
using namespace std;
int main()
{
	char ch1,ch2,ch3;
	ch1= cin.get();
	ch2= cin.get();
	ch3= cin.get();
	cout <

输入输出结果为:
C++中:cin,cin.getline(),getline()的用法_第1张图片
输入为:回车空格f;输出则为上图显示。

b.二参数:
输入字符串长度可以大于数组定义的长度。
数组长度要大于等于cin.get(字符串数组变量名,字符串长度)的字符串长度。

#include
using namespace std;
int main()
{
	char ch[10];
	cin.get(ch,10);
	cout << ch << endl;
	return 0;
}

输入输出结果为
在这里插入图片描述
输出为9个字符,最后一个字符为’/0’。

c.三参数
用法与二参数一样,只是多了个标志结束字符,可参考cin.getline()的用法,不再赘述。

cin.get和cin.getline的区别:
cin.get()在输入足够条件下,遇到“回车”时会结束目前输入,但不会删除缓冲区中的“回车”;
cin.getline()当遇到“回车”时会结束当前输入,但会删除缓冲区中的“回车”。

4、cin.getline()的用法

语法规则:
cin.getline(字符串的变量名,接收字符的个数n,‘标志结束字符’);

其中:
a.第2个参数表示读取的字符个数为n-1个,因为最后一个字符为’/0’
b.若第3个参数省略,则第3个参数系统默认为’/0’,由于字符串最后一个字符默认为’/0’,所以在字符个数足够的情况下,输出全部字符串;

程序示例:

#include 
using namespace std;
int main()
{
	char ch[10];
	cin.getline(ch, 3, 's');
	cout << ch << endl;
	return 0;
}

输入输出结果为:
在遇到标志结束字符前,输出前2个字符,最后一个字符为'/0'
在遇到标志结束字符前,输出前2个字符,最后一个字符为’/0’
输出已标志结束字符为止
输出已标志结束字符为止

5、getline()的用法

与cin.getline()属于istream的库函数不同,getline()是string库的函数,因此在使用前,需要加上:

#include 

a.定义的字符串变量要用“string”来定义
b.定义的变量不能是数组

语法规则:
getline(cin,字符串变量名,‘标志结束字符’);

程序示例:

#include 
#include 
using namespace std;
int main()
{
	string str;
	getline(cin,str,'d');
	cout << str<< endl;
	return 0;
}

输入输出结果为:
在这里插入图片描述

6、cin,cin.getline()的同时使用

在单独使用cin时,由于cin可以通过空格键结束一个变量的输入,例如:

cin>>a>>b;

这就是通过空格依次输入a和b。
而若:cin和cin.getline()同时使用,也是这个原理。

程序示例:

#include
using namespace std;
int main()
{
	char ch[10];
	cin >> ch;
	cout << ch<

输入输出结果为:
C++中:cin,cin.getline(),getline()的用法_第2张图片
从结果可以看出:
第一次输出的ch变量为第一个空格前的字符串;
第二次输出的ch变量为除了第一个字符串后到标志结束字符之间的字符串;

你可能感兴趣的:(C++,cin,cin.getline(),getilne(),C++学习)