scanf的注意点
来源:互联网 发布:速达软件数据库密码 编辑:程序博客网 时间:2024/04/30 08:38
scanf("%d%d%d\n",&a,&b,&c);sacnf("%d%d%d",&a,&b,&c);
那么加\n和不加\n有什么区别呢,我们用一个例子来说明一下:
#include <stdio.h>void main(){ int a,b,c; char d; scanf("%d,%d,%d\n",&a,&b,&c);//加了\n //printf("%d%d%d\n",a,b,c); scanf("%c",&d); printf("%c",d);}***********************************************************#include <stdio.h>void main(){ int a,b,c; char d; scanf("%d,%d,%d",&a,&b,&c);//不加\n //printf("%d%d%d\n",a,b,c); scanf("%c",&d); printf("%c",d);}
这里两段代码的区别仅是一个\n,第一个运行结果如下:
而第二个运行结果如下:
为什么第二个程序就直接结束了呢?
我们知道scanf是以输入缓冲区非空作为结束输入标志的,而在scanf的格式化字符串里面加入换行符则换行符不再被读入输入缓冲区,此时输入缓冲区内为空,需要再输入任意一个字符到输入缓冲区scanf才能结束。这样就可以解释了,第二个程序中scanf读取123后,把\n放入了输入缓冲区,而第二个scanf读取的就是输入缓冲区遗留的\n(注意这里仍没有换行符),再printf,程序就直接换行结束了。
0 0
- scanf的注意点
- scanf();需要注意的几点
- scanf使用注意点
- scanf函数注意点
- 用scanf()输入单个字符时的注意点
- printf与scanf的返回值、注意点
- scanf的注意细节
- scanf的使用注意
- scanf的注意
- scanf(), getchar(), 以及gets()函数注意点
- scanf(), getchar(), 以及gets()函数注意点
- scanf(), getchar(), 以及gets()函数注意点
- 090807c语言学习日记(printf和scanf的主要注意点)
- 090808c语言学习日记(printf和scanf的主要注意点2)
- 关于c++中的scanf函数中的一些不易发现的注意点
- scanf的那点事
- scanf注意
- 转:scanf(), getchar(), 以及gets()函数注意点
- 正则表达式(适用于oracle及linux)
- 零基础myeclipse下springBoot+maven+thymeleaf的开发(1)
- 哈希表及哈希表查找相关概念
- 关于Xutils网络请求重试的问题
- openSession和getCurrentSession的比较
- scanf的注意点
- 实现简单输入支付密码的输入
- 第一个jdbc例子
- java实现敏感词过滤
- 对随机10个数求和(2)
- VC++ EDIT控件的SetLimitText()用法
- Vsync从HWC到APP的传递过程
- B 树、B+ 树、B* 树
- 看不懂的作业