get 从流中提取字符,包括空格
read 无格式输入指定字节数
getline 从流中提取一行字符
ignore 提取并丢弃流中指定字符
peek 返回流中下一个字符,但不从流中删除
gcount 统计最后输入的字符个数
seekg 移动输入流指针
get用法
int get();
cin.get(char&rch); //读取一个字符,不跳过空白字符
cin.get(char *pch,int nCount,char)
读取多个字符放到pch中 读取字符数量上限 读多个字符至‘\n’结束不提取‘\n’
利用无参数get函数读入数据
#include<iostream>
using namespace std;
int main()
{
char c;
cout<< "enter a sentence: "<< endl;
while(1) {
cin.get(c); //一个一个读取流中的数据
if(c=='\n') break; //直到遇到回车则退出
else cout<< c; //一个一个输出到屏幕
}
return 0;
}
运行结果如下:
利用多个参数的get函数读入数据
#include<iostream>
using namespace std;
int main()
{
char ch[80]; //定义
cout<<"enter a sentence :"<<endl; //提示行
cin.get(ch,70,'|'); //输入abc|123
cout<<ch<<endl; //输出abc
cin.ignore(1); //提取并丢弃流中指定字符
cin.get(ch,70); //输出123
cout<<ch<<endl;
return 0;
}
运行结果如下:
getline用法
#include<iostream>
using namespace std;
int main()
{
char ch[80];
cout<<"enter a sentence:"<<endl;
cin.getline(ch,70,'|'); //读69个字符或遇'|'结束
cout<<ch<<endl;
cin.getline(ch,70); //读69个字符或遇'\n'结束
cout<<ch<<endl;
return 0;
}
运行结果如下:
cin.get()与cin.getline()的比较
cin.get(字符指针,字符个数n,终止字符)
cin.getline(字符指针,字符个数n,终止字符)
相同
从输入流提取n-1个字符放入数组
不同
当读到终止字符时,
cin.getline()—-将指针一道终止字符之后。
cin.get()—–将指针一道终止字符出。
所以导致下次继续读取时的位置就不同