区分cin,cin.get(),cin.getline(),getline

来源:互联网 发布:机打增值税发票的软件 编辑:程序博客网 时间:2024/05/31 19:09
1.cin
用法一:最基本的输入
cin>>a>>b;
输入:2[回车]3[回车]
输出:5
注意:>>是会过滤掉不可见字符(如空格回车,TAB等)
cin>>noskipws>>input[i]//不想略过空白字符,就使用noskipws流控制
用法二:接受一个字符串,遇“空格”、“TAB”、“回车”都结束
char a[20];
cin>>a;
输入:jijijj jij
输出:jijijj

string s[4]
cin>>s[0]>>s[1]>>s[2]


2.cin.get()
用法一:cin.get(字符变量名)可以用来接收字符
char ch;
ch=cin.get();或是cin.get(ch)
输入:adssd
输出:a
用法二:cin.get(字符数组名,接受字符数目)用来接收一行字符串,可以接收空格
char a[20];
cin.get(a,20);
输入:aaaaaaaaaaaaaaaaaaaaaa(输入大于20个字符)
输出:aaaaaaaaaaaaaaa(接收19个字符+1个'\0')
用法三:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接受字符数目)的不足
/////////稍后补充


3.cin.getline()接收一个字符串,可以接收空格并输出
char m[20]
cin.getline(m,5)
输入:asdfghj
输出:asdf
最后一个是'\0'
延申:cin.getline()有三个参数,最后一个参数是结束字符,系统默认'\n'
用在多维数组中,也可以用cin.getline()
char m[3][20]
cin.getline(m[i],20)//


int n;
cin>>n;
char s[n][20];
for(int i=0;i<n;i++)
{
 cin.getline(s[i],20,'\n');
}

若n=3,只能输入2行,为什么?会在输入n的时候吃掉一行?而且是第0行,就是说没有s[0]


4.getline()接收一个字符串,可以接收空格并输出,需要包含#include<string>
string str;
getline(cin,str)

和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是两个不一样的函数

5.接收字符
char ch;
ch=getchar();
0 0
原创粉丝点击