#include<stdio.h>
/*
学习计算机,学习敲代码,必须要真真实实的敲,如果敲过,才能明白我下面说的分析
学习ACM,代码中学,才是王道!
*/
int main(int argc, char** argv) {
/*
scanf()函数是c语言中进行输入的函数 ,用于获取数据
,在控制台中,我们输入一个数据,scanf()则进行读取
,但是,读取的时候scanf是碰到空格或tab就直接停下啦
*/
int n;
/*
对于下面,输入一个整数n,程序有一但开始运行,首先是一个黑底的控制台,这个时候,其实,程序是等待我们进行输入 ,
呵呵:对于scanf()整数格式输入的有一个尿性(有点粗俗了,大家谅解),这个尿性是%d的控制特点。也就是说,开始的时候我们输入空格,tab,enter等空白字符,scanf()
一概不理,然后原来,他在等待输入的不是空白的东西,很简答,空白的东西就是在控制台中我们自己点了,没有啥显示的,就是空白
然后,我们在输入非空白的东西,也就是我们点击键盘,控制台实时显示的东西,然后scanf()就开始发大招了
读取,OK,然后遇到下个空白,scanf()
就当啥事没有,因为此时,它已经结束了!!!,并有返回值
譬如:下面输入:111 12222 12 2 1 2 1 2
n的值是 111 后面就忽略了
*/
char b;
scanf("%c",&b);
printf("%clllllllllllllllll",b) ; //字符型的,上面那套就不起效果啦,亲自上马敲一下。
int flag;
flag=scanf("%d",&n); //对的,不必惊讶,scanf()是有返回值的,返回值1表示返回正常,输入的格式正确,0表示出现异常,出现异常的原因,比如这里是需要输入整数,你输入字母
//就直接返回0了,还有就是读取文件结尾,返回为-1,比如:在windows之中,ctrl+z表示文件结尾Ctrl+Z的话,读入,返回flag=-1;
//这里也就是大家为什么会经常看到EOF,实际上EOF就是end of file,是stdio.h定义的一个常量值,表示文件结尾,它的值代表的是-1;
printf("输入结束,flag: %d n值: %d",flag,n);
char c;
flag=scanf("%c",&c); //分析;骚年们,这个时候的分析有点吊,我们整个程序开始运行,输入 1 enter,此时我们知道的是scanf()读取了1,不知道的是,这个时候,这里的
//的scanf()搭上上面的顺风车,直接读取enter符号,也就是换行,所以直接下面输出的是一个换行,flag=1;
printf("字符输入的是:%c flag=%d",c,flag);
flag=scanf("%c",&c);
printf("字符输入的是:%c flag=%d",c,flag);
printf("啦啦啦啦啦啦啦啦啦,%c的测试完成!");
return 0;
}
scanf学习之路
最新推荐文章于 2023-12-07 17:20:45 发布