cin.getline()的用法和cin.get()用法大致相同,没有一参数用法,只有二参数,三参数两类
- cin.gerline(arrayname,size)
- cin.getline(arrayname,size,s)
用法与cin.get()效果大致相同,但也有些区别
(1)cin.getline(arrayname,size)与cin.get(arrayname,size)的区别
cin.get(arrayname,size)当遇到[enter]时会结束目前输入,他不会删除缓冲区中的[enter]
cin.getline(arrayname,size)当遇到[enter]时会结束当前输入,但是会删除缓冲区中的[enter]
#include<iostream>
using namespace std;
int main()
{
char a[10];char b;
cin.get(a,10);
cin.get(b);
cout<<a<<endl<<int(b);
}
输入:12345[enter]
输出:12345 【换行】 10
说明:cin.get(a,10)把12345到a中,遇到[enter]结束,但是不把[enter]删除,则把[enter]输入到b中,(enter的ASCII码为10)
#include<iostream>
using namespace std;
int main()
{
char a[10];char b;
cin.getline(a,10);
cin.get(b);
cout<<a<<endl<<int(b);
}
输入:12345[enter]a[enter]
输出:12345【换行】97
说明:cin.getline(a,10)把12345输入到a中,遇到{enter}结束,并把缓冲区中[enter]删除,把接下来的a输入到b中
(2)cin.getline(arrayname,size,s)与cin.get(arrayname,size,s)的区别
cin.getline(arrayname,size,s)当遇到s时会结束输入,并把s从缓冲区中删除
cin.get(arrayname,size,s)当遇到s时会结束输入,但不会删除缓冲区中的s
#include<iostream>
using namespace std;
int main()
{
char a[10];char b;
cin.get(a,10,',');
cin.get(b);
cout<<a<<endl<<b;
}
输入:12345,[enter]
输出:12345【换行】,
说明:cin,get不会删除缓冲区的,
#include<iostream>
using namespace std;
int main()
{
char a[10];char b;
cin.getline(a,10,',');
cin.get(b);
cout<<a<<endl<<int(b);
}
输入:12345,[enter]
输出:12345【换行】10
说明:cin.getline把12345输入到a中,遇到’,‘结束,并删除缓冲区的’,‘,后面的[enter]输入到b中
运用---以任何符号作为输入分隔符
例题:输入五个学生的名字,每个学生的名字不超过10个字符,输入时学生名字之间用逗号隔开,把这五个名字存储并换行输出
#include<iostream>
using namespace std;
int main()
{
char a[5][10];
int i;
for(i=0;i<4;i++)
cin.getline(a[i],10,',');
cin.getline(a[i],10);
for(i=0;i<5;i++)
cout<<a[i]<<endl;
}
这样我们就可以完成完成用任何符号作为分割符的输入了!此处getline换成get是不行的,因为cin.get不会删除缓冲区中的分隔符’,‘ 后续输入不能继续进行
转载来源 https://blog.csdn.net/a1015553840/article/details/50579396