c语言 scanf 和 读取回车

Python045

c语言 scanf 和 读取回车,第1张

注意下判断语句,其实是在拿scanf的返回值在和EOF或\n比较。

scanf的返回值类型为int,值由后面的参数决定,返回值表示成功读入的数据的个数。

如:scanf("%d%d", &a, &b)

如果a和b都被成功读入,那么scanf的返回值就是2。

如果只有a被成功读入,返回值为1。

如果a和b都未被成功读入,返回值为0。

如果遇到错误或遇到end of file,返回值为EOF。

扩展资料:

注意事项

scanf 的各种格式中,%d、%c、%s三种最常用,通常都是以回车作为一次输入的结束。由于对字符解析方式及字符特点不同(如数字中一般不会出现空格回车等特殊字符)不同,%d格式一般不会在连续输入时,遇到问题。而%s和%c却会出现各种各样的问题,比如回车问题,空格问题等。

scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。在类型匹配错误的时候,以非正常的方式退出。可以利用scanf函数的返回值判断输入是否正确,并进行流程控制:

int i = 0    char c1[15]    while((scanf("%c", &c1[i])!=EOF) &&i<14)

{

i++

}

1、对于scanf("%lf%c%lf",&number_1,&operition,&number_2),注意格式串中没有(也不能有)空格,输入响应时,要连续输入三个量,中间也不能有空格,否则,必然会造成误读。键入三个量后,接下来的回车键表示本次输入已经结束,回车键不会被认为是数值的一部分,而会被“吃掉”,输入缓冲区中没有任何遗留。

2、函数isdigit(char)的参数ASCII字符,或0 -- 127 的整形数,用double类型作为参数是错误的。

C语言中,

输入并不是实时被scanf响应的.

而是先存在缓冲中.

只有当遇到换行/缓冲满/程序结束几种情况之一时,才会被送到scanf.

所以

为了让scanf收到数据,就必须加回车.