tzkr.net
当前位置:首页 >> C语言.为什么两个sCAnF只执行了一个? >>

C语言.为什么两个sCAnF只执行了一个?

你输入时除了数据还会输入回车,第一个scanf只接收输入缓冲区中的整型数,回车还留在输入缓冲区中。执行第二个scanf时,将从输入缓冲区中接收回车。执行第三个scanf时同理。解决办法:在第二个和第三个scanf语句前加上fflush(stdin)语句。

printf("请问还需要继续输入成绩吗?继续请输入'Y',退出请输入除'Y'以外的任何字符:); getchar( ); scanf("%c",&a); 因为上面输入分数时打了个回车 用个getchar()吸收回车;不然回车会被scanf用了 望采纳。

scanf里面我没听说过能加\n。 但是关于字符的问题,我想是垃圾字符的缘故。以前我遇到过垃圾字符的问题。 我以前写为了记住关于垃圾字符的问题,还写到过blog上。复制来你看看吧~!~! 浅谈C语言中的垃圾字符- - 在C语言中,如果使用字符型变量...

char c[10]; for(int i=0;i

这种情况通常发生在前面已经有了输入语句,而当前的scanf是在接收字符(即用%c控制输入)时。由于前面的输入语句(不一定是scanf)把最后输入的'\n'遗留在了输入缓冲区,而当前的scanf("%c",...);又会把'\n'当一个字符接收,又由于scanf在%c控制下只...

scanf_s不是这样用的,你要写成下面这种(后面的40是指最多要输入多少个字符) scanf_s("%s", fname,40);scanf_s("%s", lname,40);fflush(stdin);另外scanf_s遇到空格也会以为是新的输入,所以如果你的某项内容中如果有空格,要写成类似这种 sca...

因为你的代码是scanf("%d,%d",&a,&b); 所以按照格式你应该加上逗号。比如说你想输入22 33 就应该 22,33 也可以像这样scanf("%d %d",&a,&b);中间用空格隔开,那样你就可以直接输入 22 33了

其实这两个scanf语句的作用是一样的,都是让你输入学生成绩,只是,第一个写在while循环外面,目的是需要有第一个数值,去判断是否继续执行下去,不过这样子写的让你很难理解,可以用do{}while()循环来写,这样就只要写一次SCANF就可以了

scanf输入数值时,需要按照scanf格式参数的定义来决定数值之间用什么隔离。 譬如 scanf("%d,%d", &a, &b); 输入两个数之间必须有一个逗号 scanf("%d&%d", &a, &b); 输入两个数之间必须有一个&号 如果没有特别指明分隔符号,默认是空格或回车。

scanf中\n问题scanf("%d\n",&num);scanf函数的第一个参数指定了后面变量读取的格式,这样写的话会按照 :数字 回车的格式读取,读到回车之后会继续读下一行,如果缓冲区没有东西scanf就会阻塞在那里,直到用户有输入以至于有时候会遇到再输入一...

网站首页 | 网站地图
All rights reserved Powered by www.tzkr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com