因为scanf在傻傻的等着你写一个东西,占用空格的位置啊。 当然这时候你也不能用空格。 因为空格就代表没有东西。 你必须给他任意一个东西来填补空格的位置,这时候它才会满足的觉的你终于输入完了。 就像图中,在最后输入一个1来填补空格的位置。它才会给你想要的输出。 所以要永远记住scanf引号之内的东西,都是它...
2.利用scanf中的返回值 1)EOF法 在scanf返回值中,EOF(end of file)表示输入流已经结束,因此我们可以通过判断scanf的返回值是否为EOF来判断是否退出循环,达到多组输入的目的。 代码如下 以下代码的目的是求出多组a+b+c的值 int main(){int a, b, c;while(scanf("%d %d %d",&a,&b,&c)!=EOF)//多...
scanf("%c %c %c",&a,&b,&c);//之间加上空格printf("%c%c%c",a,b,c);return0; } 注:如果输入的是整形等非字符型数据,根据2、可知道不须这么写,因为空格会被视为非格式串。 5、scanf()中%s和%c的区别: 首先声明:在键盘中敲入字符后,字符会首先保存在键盘缓冲区中供scanf函数读取(scanf,get...
scanf()中的%c 不能正常输入的问题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <stdio.h> intmain() { chara; intb; scanf("%d",&b); scanf("%c",&a); /***/ printf("%d",b); printf("%c",a); return0; /* 应该输入...
c[i] = scanf("%c",&c[i]); printf(c); return 0; } 如果输入: a b c 那么循环就会“提前”结束了。 原因:输入a和第一个回车后,a和这个回车符都留在缓冲区中。第一个scanf读取了a,但是输入缓冲区里面还留有一个 ,第二个scanf读取这个 。然后输入b和第二个回车,同样的,第三个scanf读取了b,第...
scanf中什么时候用&,什么时候不用 1.首先scanf是格式输入函数,&是取地址运算符,使用scanf时,对于本身无法表示地址信息的,往往要加&来“获取地址”,本身表示的就是地址信息的,就不需要加&来取地址。判断的依据可以看,scanf后面的参数,是否能够反应地址信息,不能你就需要使用&或使用指向该位置的指针的方式来传给给...
c[i] = scanf("%c",&c[i]); printf(c); return 0; } 如果输入: a b c 那么循环就会“提前”结束了。 原因:输入a和第一个回车后,a和这个回车符都留在缓冲区中。第一个scanf读取了a,但是输入缓冲区里面还留有一个 ,第二个scanf读取这个 。...
第一个scanf读取了a,但是输入缓冲区里面还留有一个 ,第二个scanf读取这个 。然后输入b和第二个回车,同样的,第三个scanf读取了b,第四个scanf读取了第二个回车符。第五个读取了c。所以五个scanf都执行了,并没有提前结束。只不过有的scanf读取到了回车符而已。 解决方法 1.不输入回车符,直接输入字符。 2.用...
scanf("%d%*c", &n);整体表示输入两个数,并且忽略掉第二个字符型的输入项,然后将输入的对象存入n。在C语言的scanf函数中,格式字符串的一般形式为:%[*][输入数据宽度][长度]类型(其中有方括号[]的项为任选项)。不同的格式符类型有不同的功能。扩展资料C语言scanf函数的语法规则:1、语法#include <...
c语言中的scanf("%s",&a)的”“是什么意思 简介 &是取地址,scanf读取变量的时候。scanf()函数简单说就是通过键盘输入给声明好的变量赋值。如何使用注意以下几点。1、单个变量如:int i;scanf("%d",&i);printf("i=%d.\n",i);整数输入100,回车结束,系统默认以字符的形式读取‘1’、‘0’、‘0’...