流输入cin与格式化输入scanf区别

为了说明问题,先定义两个变量
char str[100];char c;
1.cin>>str与scanf(“%s”,str)都可忽略字符串开始的不可见字符。如果要同时输入前面的输入字符的话,就用gets(str)函数
2.cin>>str 从缓冲区读入整个字符,忽略前面的空格和换行符,但包括最后的转行符;此时在cin>>c的话,输入输出缓冲区没有字符,需要重新输入;
3.scanf(“%s”,str)从缓冲区读入整个字符,忽略前面的空格和换行符,不包括最后的转行符;此时在scanf(“%c”,&c)的话,输入输出缓冲区还有一个字符‘\n’,不需要重新输入,此时的c=’\n’;
4.对于输入连续字符,比如”zhou ming”,cin>>str1>>str2或者scanf(“%s%s”,str1,str2),缓冲区自动将这个字符分成两个子字符串,保存到str1和str2中,不管中间有多少个,或者休想用c来保存中间的空格;
5.空白符的问题:
scanf(“%d\n”,&a),在console输入12程序并不会往下执行,而是等待console继续输入。格式化字符串里的空白符(制表符,换行符,回车符和换页符)起匹配字符串作用,进行匹配的时候,他会一直匹配到下一个非空字符的出现才停止。所以\n后面会一直等待下一个非空白字符串出现才会接着执行;

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值