写代码的时候总是在这里不小心出错,所以特意查了一下这个函数,整理了一下。现在和大家分享一下。

1.空白字问题

#include<。stdio.h>。

main

{

int a;

printf;

scanf;//这里多了一个回车

printf;

返回0;

}

因此,在程序结束之前,必须输入两个数字,而不是预期的数字。为什么?

原因:当以空白色字符结束时,scanf将跳过空白色字符来读取下一个字符,因此您必须输入另一个数字。空此处的白色字符包括空、制表符、换行符、回车符和换页符。所以如果使用scanf 也会出现同样的问题。

解决方法:这些错误大多是进入时的粗心。多关注点就好。这种问题不好查,编译没有问题,a 空框也不好看。当以上问题出现在你的程序中,你自己检查一下就行了。

2.回车也占用空间。

#include <。stdio.h>。

main

{

int n = 5;

char c;

for

c = scanf;

printf;

返回0;

}

如果您输入:

a

b

c

那么循环就会“提前”结束。

原因:输入A和第一个回车后,A和这个回车都留在缓冲区。第一个scanf读取一个,但输入缓冲区中还有一个,第二个scanf读取这个。然后输入b,第二个回车。同样,第三个扫描读取b,第四个扫描读取第二个回车。第五个读c .因此,所有五个扫描都被执行,没有提前结束。只有一些扫描器读取回车。

解决方法:

1.直接输入字符,而不是回车。

2.使用get函数,例如:

#include<。stdio.h>。

main

{

char c;

get;

printf;

返回0;

}

3.3.scanf函数的参数输入类型不匹配

这是我在百度的时候看到的一个问题,现在还没遇到。为了将来的需要而整理出来。

#include<。stdio.h>。

main

{

int a = 123

char c = ' t

printf;

scanf;

scanf;

scanf;

printf;

返回0;

}

输入回车后,将直接跳过以下两个scanf语句,直接输出为

123

t

原因:对于scanf 执行scanf语句时,如果其中一个参数不匹配,跳出这个地方,忽略scanf后面的所有参数,执行下一条语句。

解决方案:当scanf函数成功执行时,返回值是成功读取的变量数。也就是说,你的scanf函数有几个变量,如果所有的scanf函数都是正常读取的,那么会返回几个。但是,这里要注意另一个问题。如果输入非法数据,键盘缓冲区可能仍有剩余信息。

例如:

#include <。stdio.h>。

main

{

int a=123,b;

while!=2)

fflush;

printf;

返回0;

}

还有一种方法:直接用scanf ;够了。是不是很神奇?还要注意,空不能加在方括号的两边。

1.《scanf C语言中scanf函数的3种常见问题与应对技巧》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《scanf C语言中scanf函数的3种常见问题与应对技巧》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1787922.html