注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mihooke's blog

IT之恋

 
 
 

日志

 
 

cin、cin.get()、getline()、cin.getline()与string输入  

2014-10-30 15:34:36|  分类: C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1cin>>  

 

用法1:最常用的用法,输入一个与变量类型相符变量值: 

 

int a,b; 

cin>>a>>b; 

 

char a[20]; 

cin>>a; 

cout<<a<<endl; 

 

输入:mihooke【回车】 

输出:mihooke

 

输入:mi hooke//遇空格结束,第一个空白字符后面的所有字符舍弃 

输出:mi

2cin.get() 

 

用法1: cin.get(字符变量名)可以用来接收字符 

char ch; 

ch=cin.get(); //或者cin.get(ch);获取单个字符 

cout<<ch<<endl; 

 

输入:mihooke

输出:m

还有一种用法就是在for循环中使用,用于获取多个输入:

for(...)

{

getline(cin,b[i]);  #1

cin>>a;   #2

cin.get();   #3

}//这里cin.get()就是为了防止输入a之后,按下【回车】,会跳过#2语句,因为#1语句会读取回车符,加上#3语句之后就可以正常读取输入了

用法2cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格 

char a[20]; 

cin.get(a,20); //有些类似getline。可以输入多个单词,中间空格隔开。 

cout<<a<<endl; 

  

输入:mi hooke love

输出:mi hooke love

 

输入:mihookemihookemihooke (输入21个字符) 

输出:mihookemihookemihoo (接收19个字符+1'\0'


string输入方式

C-style方式:

char  stringg[100];

cin>>stringg; //读取一个单词,第一个空格结束

cin.getline(stringg,100);    //读取一行,换行符结束

cin.get(stringg,100); //读取100个字符,这时如果输出stringg,第101个输入字符就会被舍弃

对于string对象:

string s;

cin>>s;  //读取一个单词,第一个空格结束

getline(cin,s);    //读取一行,换行符结束

两个getline区别在于,string类的getline()将自动调整目标string的大小,使之能够存储输入的字符串,如下

char n1[10];

string n2;

cin>>n1;//只能读取9个字符,因为n1[10]=\0,有可能也会接受第10个以后的输入字符,但是程序也许会崩溃。

cin>>n2;//读取在换行符结束之前的字符

cin.getline(n1,10);//安全读取输入字符的前9个,第10个以后就都舍弃了

getline(cin,n2);//读取换行符结束之前的所有字符

  评论这张
 
阅读(38)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017