1.scanf各种类型数据的介绍
%c——输入字符(char)
%s——输入字符串
%d——输入整型(int...)
%f——输入浮点型(float)
%lf——输入浮点型(double)
注:%p——打印地址(传入地址&)
2.scanf的返回值与多组输入
scanf是输入函数
函数的返回值是:
1.如果读取成功,返回的是实际读取到的数据的个数。
2.如果读取失败,返回EOF,EOF的值是-1
所以如果要写一个多组输入的程序,就可以用while循环并用scanf的返回值作为循环的判断条件
上面的多组输入是int类型所以可以用EOF来作为判断条件
但如果是char类型还可以用EOF吗,其实是不行的,下面我们来看一个例子:
这个题目需要判断输入是否为字母,很显然是一个char类型的多组输入。
我们来看一个错误范例
乍看其实好像没错,但是如果你多组输入的话,是不是会用空格或者换行来分离每一个输入呢?
而输入空格或者换行时,你的scanf同样不等于EOF呀,这时候要怎么办呢?
我们可以把!=EOF换成==1,其实就可以啦!