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

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

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

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

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

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

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

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

你把scanf语句中的\n去掉就好了。 \n在scanf格式串中不表示等待换行符,而是读取并放弃连续的空白字符;也就是说第三个字符输入时的回车被放弃掉了,直到下一个非空白字符才会匹配到第三个字符;

用两个scanf,输入的数值可以在同一行,输入时注意两个数之间运用空格分开。 验证: #include void main(){int a,b;scanf("%d",&a);scanf("%d",&b);printf("%d %d",a,b);} 运行示例: 可见,输入的数值是可以在同一行的。 输入的数值也可以不在...

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

%c 让你输入的是字符,包括空格,换行符。而我们按下回车键的时候就是一个换行符 需要先getchar();去掉换行符。懂? 不懂请追问,懂了求accept 电脑我懂你团队为您服务

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