C语言中的scanf函数与多组输入

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,其实就可以啦!

 

猜你喜欢

转载自blog.csdn.net/m0_75186846/article/details/131223530