scanf在读取字符串时,会自动忽略换行符,所以
char ch,a[10],b[10];
scanf("%s",a);
scanf("%s",b);
printf("%s",a);
printf("%s",b);
当输入abc回车def时,输出abcdef
但是换行符还是留在缓冲区中,所以我们在scanf后面应该加上一行
getchar();
来去掉残留的换行符
【关于scanf与换行符的问题】特别地:
scanf(“%c”,&a)
会读取换行符一般情况下,我们不需要每次都加上getchar,因为scanf只读取对应的类型,但是如果后面的程序中出现要读取字符时,就一定要加上getchar把缓冲区中的回车符去除。
推荐阅读
- c/c++|有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代...
- C/C++|C/C++ basis 02
- Qt实战|Qt+OpenCV联合开发(二十一)--图像翻转与旋转
- Qt实战|Qt+OpenCV联合开发(十四)--图像感兴趣区域(ROI)的提取
- Qt实战|Qt+OpenCV联合开发(十三)--通道分离与合并
- opencv|Qt+OpenCV联合开发(十六)--图像几何形状绘制
- Qt实战|Qt+OpenCV联合开发(十七)--随机数与随机颜色
- SNAT的MASQUERADE地址选择与端口选择
- IPTABLES的连接跟踪与NAT分析
- IPVS分析