cin cin.get cin.getline

cin<<的结束符有enter space tab
cin.get()的结束符只有enter,但会把enter放入队列等待
cin.getline()的结束符也只有enter,但不会把enter放入队列


如果用cin>>…做过输入,在使用cin.getline之前,需要处理一下。处理的方法很多,你可以在cin>>…的输入语句后加一个语句cin.get();。


用getline()读取输入行

 
当程序使用cin输入时,cin用空白符和行结束符将各个值分开。根据所需输入的值,如需读取一整行文本并且分开不同的域,则要使用getline成员函数
 

getline(char*line,int size,char ='/n')

第二个参数是本次读取的最大字符个数,第三个参数是分隔字符,作为读取一行结束的标志。

下面的函数从键盘读取一行文本

#include <iostream>
using namespace std;

int main()
{ 
    char str[128];
    
    cin.getline(str,sizeof(str));
    cout <<"you typed :" <<str<<endl;
    

}

 

 

#include <iostream>
using namespace std;

int main()
{ 
    char str[128];
    cout<<"please input text and enter"<<endl;
    cin.getline(str,sizeof(str),'X');
    cout <<"you typed first line:" <<str<<endl;
    
    cin.getline(str,sizeof(str));
    cout <<"sencond line :"<<str<<endl;

}

在键入X之前,可以按一次到多次回车键,而并不结束第一个cin.getline()的输入 。 第一个cin.getline()的输入操作将以键入X后的第一个回车结束。

cin.getline() 与 cin>>str 的一个不同是,前者输入一行,行中可以包含空格,后者却以空格或回车作为字串结束,不包含空格。

 

用get()读取一个字符

每次获取一个字符:char istream::get();

转帖:http://blog.csdn.net/lyac2006/article/details/1565556

你可能感兴趣的:(cin cin.get cin.getline)