scanf后跟getchar
答:其实是执行了,因为getchar()函数可以接收空格和回车,所以c中应该接收的是回车,你可以在输出时可以按a,c,b的顺序输出就会知道了.
答:这个没听过,不用的,scanf不会接受回车的。倒是当连续使用几个getchar()时得用fflush(stdin)来清除回车,不信你试试
答:我举个例子,这个程序很简单,只是存在一个输入格式要求的问题,以下程序要求:输入一个字符,然后就按一次回车。include <stdio.h> int main(){ char a;printf("input first char: ");scanf("%c", &a );getchar();//接收回车 printf("upper...
答:可以通过gets,scanf,fgets函数等来向输入缓冲区添加内容,而向键盘缓冲区添加内容一般都是通过按键盘或者用ungetch函数.所以,如果把getchar改为getch,就无法接收掉输入缓冲区里多余的回车符,从而影响后面的gets函数,而且还会使输入一个数据按完回车后还需要再按任意一个键才行.有问题追问或评论回答:
答:getchar 一次只读取一个字符,不能是读取字符串 直接从键盘读取,输入一个,它就接收一个。不管是回车,还是空格,它统统读取。scanf 可以一次读取一个字符串或多个字符串 它是读取输入缓冲区,当输入回车后 才开始执行读取 如果是一次读入多个字符串,读取字符串的结束 和读入格式有关系 例如:scanf("...
答:scanf:从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。getchar:从stdio流中读字符,相当于getc(stdin),它从标准输入里读取下一个字符。返回类型为int型,...
答:这个程序很简单,只是存在一个输入格式要求的问题,以下程序要求:输入一个字符,然后就按一次回车。include <stdio.h>int main(){char a;printf("input first char: ");scanf("%c", &a );getchar();//接收回车printf("upper %c=%c\n", a,a+'A'-'a' );printf("input second char: ...
答:3、getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)错在getchar() 是从键盘读取一个字符放入缓冲区,然后在取出来,你在输入某个数或者字符后敲回车其实缓冲区也接受了你的回车了。可以这么修改:char ch;int key;printf("please input key");scanf("%d",&key);fflush(stdin);pr...
答:getchar()是c语言中的一个输入函数,可以用它来赋一个字符的值.例如: char a;a=getchar();当你在键盘上输入一个字符(如输入g)后按回车,那么字符变量a的值就是'g'了。与scanf的区别:1、getchar()函数只能输入一个字符型的值,而scanf()函数除了字符型,还可以输入多种数据类型的值,...
答:而输入函数直接从输入缓冲区中取数据。正因为输入函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,输入函数会直接取得这些残留数据而不会请求键盘输入,这就是原因。scanf("%d",&ch)不接收字符,因为在缓冲区里面,由后面的getchar()接收。
网友评论:
弓连15678219500:
getchar在scanf()后有什么作用 -
66564岳子
: getchar在scanf()后,可以吸收回车符,以便输入下一个字符.如 int n; char a; scanf("%d",&n); getchar(); //清除回车符 scanf("%c",&a);
弓连15678219500:
c语言中 scanf后面一定要跟个 getchar吃回车吗? -
66564岳子
: c语言中在读取键盘数据时,一般是带缓存的数据输入,需要按回车键才能完成该“行”数据的输入确认. 而 scanf()函数对这个回车确认符并不进行处理,回车符会留在输入缓存区中. 因此,在下一个读“字符”操作函数(getchar, scanf...
弓连15678219500:
c语言scanf输入字符串为何要加getchar -
66564岳子
: 第一个scanf读入字符串后,换行符留在输入缓冲区中,被第二个scanf读入(scanf的格式字符串为%c时会读取一切字符包括换行和回车),因而造成错误.可在第一个scanf结束后加入一行fflush(stdin)清空输入缓冲区.
弓连15678219500:
scanf()后面加上一个getchar()之后是否可以解决泄漏问题? 与scanf - s比较如何? -
66564岳子
: printf("输入第一个字符:"); a = getchar(); printf("%c",a); printf("输入第二个字符:"); scanf("%c",&a); putchar(a); }
弓连15678219500:
scanf后用getchar缓存问题. -
66564岳子
: scanf是按格式输入,getchar一次只能输入一个,cin.get一般不用 例如:scanf("%d/%d/%d",&month,&day,&year);就可以按6/5/2010输入 还有一个getch是不用键盘缓冲区,直接获取字符.例如:char cha=getch();在命令行中,光标回等待你的输入,你只有在键盘上敲入任意一个字符,程序会立即把字符赋给cha,而不是等待你的回车.下面为摘抄:一般情况下,cin自动跳过输入的空格,如果你要把键盘上输入的每个字符 包括空格和回车键都作为一个输入字符给字符型变量时,必须使用函数cin.get().格式为 cin.get(字符型变量) 该语句一次只能从输入行中提取一个字符.
弓连15678219500:
scanf和getchar的区别 -
66564岳子
: scanf和getchar的区别: 一、函数格式不同 scanf函数是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量中.getchar函数是键盘输入函数,其功能是从键盘上输入一个字符. 二、读取方式不同 scanf函数在读取数字时会...
弓连15678219500:
为什么在C语言中,字符型不能用SCANF输入,而是用GETCHAR? -
66564岳子
: 字符型可以用scanf输入,只不过在循环的输入,或者连续多个输入单个字符时,使用scanf处理不好会出些问题. 如果处理单个字符的话, 一般在scanf语句后还要加一条getchar语句;来接受回车键.例如: char c; scanf("%c",&c); getchar(); 其实使用getchar();一般也是连续用两次.
弓连15678219500:
每一个scanf后面都要加一个getchar来吸收换行符吗 -
66564岳子
: 如果你之后的 scanf 用到了 %s 或者 %c,那在这之前就需要了 再看看别人怎么说的.
弓连15678219500:
C语言getchar在scanf循环里是怎么读取的 -
66564岳子
: getchar 和 scanf 都是到 输入流缓冲区去 读取 东西,读了多少,文件指针就被搬动了多少.getchar 一次读1个字符,(空格,tab, LF 等字符也会读入),scanf 按 格式 读数据,但会跳过 空格,tab, LF 等 空白.你的程序先做 scanf("%d",&n),读错,不搬动文件指针,返回 0,满足循环条件,进循环体.于是 a123 全由 while((ch=getchar())!='\n') putchar(ch); 读一个字符打印一个字符,直到 LF 结束.