c++ cin.get() cin.getline()

前言

c++三种文件输入格式

Code

example 1

用法:a = cin.get() 或者 cin.get(a)
结束条件:输入字符足够后回车
说明:这个是单字符的输入,用途是输入一个字符,把它的ASCALL码存入到a中
处理方法:与cin不同,cin.get()在缓冲区遇到[enter],[space],[tab]不会作为舍弃,而是继续留在缓冲区中

#include 
using namespace std;
int main()
{
	char a,b,c,d;
	cin.get(a);
	cin.get(b);
	c = cin.get();
	d = cin.get();
	cout<<int(a)<<','<<int(b)<<','<<int(c)<<','<<int(d)<<endl;
    // system("pause");
    return 0;
}

/*
用法:a = cin.get() 或者 cin.get(a)
结束条件:输入字符足够后回车
说明:这个是单字符的输入,用途是输入一个字符,把它的ASCALL码存入到a中
处理方法:与cin不同,cin.get()在缓冲区遇到[enter],[space],[tab]不会作为舍弃,而是继续留在缓冲区中
*/

result

# one test
a
a
97,10,97,10

# other test
aaaa
97,97,97,97

example 2

get()三个参数

  • 用法:cin.get(arrayname,size,s) 把数据输入到arrayname字符数组中,当到达长度size时结束或者遇到字符s时结束

  • 注释:a必须是字符数组,即char a[]l类型,不可为string类型;size为最大的输入长度;s为控制,遇到s则当前输入结束缓存区里的s将被舍弃

#include 
using namespace std;
//cin.get(arrayname,size)  把字符输入到arrayname中,长度不超过size
int main()
{
    //get()两个参数

    //1.输入串长arraylength,会自动扩张arrayname大小,使能保存所有数据
	// char a[10];
	// cin.get(a,20);
	// cout<
    // cout<
    //2.输入串长
    // char b[10];
	// cin.get(b,20);
	// cout<
    // cout<
    //3.输入串长>size,先截取size个字符,若还是大于arraylength,则输入前arraylength-1个字符,最后补充‘\0’
    // char c[5];
	// cin.get(c,10);
	// cout<
    // cout<
    //4.输入串长>size,先截取size个字符,若小于arraylength,则把截取串放入数组中,最后补充‘\0’
    // char d[10];
	// cin.get(d,5);
	// cout<
    // cout<
    
    //get()三个参数
    /*
        用法:cin.get(arrayname,size,s) 把数据输入到arrayname字符数组中,当到达长度size时结束或者遇到字符s时结束
        注释:a必须是字符数组,即char a[]l类型,不可为string类型;size为最大的输入长度;s为控制,遇到s则当前输入结束缓存区里的s将被舍弃
    */
    int i;
    char e[10];
    cin.get(e,8,',');
    cout<<e << endl;
    // system("pause");
    return 0;
}

result

qwertyuiopa
qwertyu

example 3

cin.getline(arrayname,size)与cin.get(arrayname,size)的区别

  • cin.get(arrayname,size)当遇到[enter]时会结束目前输入,他不会删除缓冲区中的[enter]
  • cin.getline(arrayname,size)当遇到[enter]时会结束当前输入,但是会删除缓冲区中的[enter]
#include
using namespace std;

int main()
{
    /*
	char a[10];
    char b;
    cin.get(a,10);
	cin.get(b);
    cout<
    /*char c[10];
    char d;
    cin.getline(c,10);
    cin.get(d);
	cout<
    //cin.getline(arrayname,size,s)与cin.gei(arrayname,size,s)的区别
    /*
    cin.getline(arrayname,size,s)当遇到s时会结束输入,并把s从缓冲区中删除
    cin.get(arrayname,size,s)当遇到s时会结束输入,但不会删除缓冲区中的s
    */
   /*
    char e[10];
    char f;
    cin.get(e,10,',');
	cin.get(f);
	cout<
    char e1[10];
    char f1;
    cin.getline(e1,10,',');
	cin.get(f1);
	cout<<e1<<endl<<f1 << endl;//输入:asd,wqe 输出:asd【换行】w
    // system("pause");
    return 0;
}

你可能感兴趣的:(C++基础学习,c++,算法,开发语言)