cin、cin.get()、cin.getline()、getline()
下面介绍下c++中的这些函数的区别与联系
一、cin
a、输入数
void main()
{
int a,b;
cin>>a>>b;
cout<<a + b<<endl;
}
输入:4空格5回车 输出:9
b、输入字符串
void main()
{
char a[18];
cin>>a;
cout<<a<<endl;
}
cin遇空格结束,例如:输入:abcde空格dfg 输出:abcde
二、cin.get()
a、可以用来接收字符
void main()
{
char ch;
cin.get(ch); //ch=cin.get();
cout<<ch<<endl;
}
输入:abcde 输出:a
b、cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格//接收的字符数目包含‘\0’
void main()
{
char a[10];
cin.get(a,10);
cout<<a<<endl;
}
输入:tan空格ert 输出:tan空格ert。如果输入的字符数大于接收字符数目,则a中的数据按照接收字符数目的大小。
三、cin.getline()//接收一个字符串,可以接收空格并输出
cin.getline()实际上有三个参数,cin.getline(接收字符串的指针,接收个数,结束字符) ,当第三个参数省略时,系统默认为'\0' 。
void main()
{
char m[20];
cin.getline(m,5);
cout<<m<<endl;
}
输入:abcdfgrg 输出:abcd
void main()
{
char m[20];
cin.getline(m,10,'a');
cout<<m<<endl;
}
输入:1234dfgha 输出:1234dfgh
四、getline //接受一个字符串,可以接收空格并输出,需包含“#include<string>”
void main()
{
string str;
getline(cin,str);
cout<<str<<endl;
}
输入:abcdf sdsad 输出:abcdf sdsad 这里的输入的大小没有限制啊