把scanf改成getchar
答:前两个问题输出结果是一样的。当然,ch=getchar();应改为ch[i]=getchar();带空格时,要把控制循环变量改为20;后面的问题应该是scanf(“%s”,str);与gets(str);的区别,此时,scanf中空格、回车、跳格都表示结束,而gets中为一个字符 ...
答:scanf:从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。getchar:从stdio流中读字符,相当于getc(stdin),它从标准输入里读取下一个字符。返回类型为int型,...
答:getchar()是c语言中的一个输入函数,可以用它来赋一个字符的值.例如: char a;a=getchar();当你在键盘上输入一个字符(如输入g)后按回车,那么字符变量a的值就是'g'了。与scanf的区别:1、getchar()函数只能输入一个字符型的值,而scanf()函数除了字符型,还可以输入多种数据类型的值,...
答:楼主你好,getchar()会读入换行符的。改成下面这样就对了:include<stdio.h> include<stdlib.h> include<string.h> define N 8 void main(){ int i,m;char g[N];printf("m=");scanf("%d",&m);//printf("ok");getchar();printf("please input vexs(顶点名称):\n");for(i=0;i<...
答:其实是执行了,因为getchar()函数可以接收空格和回车,所以c中应该接收的是回车,你可以在输出时可以按a,c,b的顺序输出就会知道了.
答:c语言中在读取键盘数据时,一般是带缓存的数据输入,需要按回车键才能完成该“行”数据的输入确认。而 scanf()函数对这个回车确认符并不进行处理,回车符会留在输入缓存区中。因此,在下一个读“字符”操作函数(getchar, scanf("%c"), gets()等)运行时,会读到这个字符。而在读数值型数据或...
答:不可以。getchar用于读取单个字符,会立即读取输入缓冲区中的下一个字符,无论是空格、制表符还是换行符。适合于需逐个字符读取的情况。scanf则用于读取并解析一个或多个输入字段,直到遇到空格、制表符或换行符。适合于读取多个连续的字符或数字,可以按照指定的格式进行解析。
答:scanf("a=%db=%d", &a, &b);scanf("%f%e", &x, &y);这是两个语句我是否需要分别输入如果可以分别输入那中间可以用什么符号隔开是回车换行吗 答:一般是以空格和换行符来区分的(这个我也不确定)c是字符格式,是针对单个字符的。如果你输入的是一个整型数,会根据ASCII码来进行转换成对应的...
答:字符串输入结束后立即按回车键 都会的。include<stdio.h> main(){ char filename[80];int ch;scanf("%s",filename);// ch=getchar();scanf("%c",&ch);printf("ch=0x%02X ",ch); // 用16进制数值输出这个键的编码,就知道它是\n键 return 0;} ...
答:其实这份代码不加getchar()也可以正常运行,因为输入的两个都是整形,而在输入整形的时候,会忽略之前的空格、回车,并且以之后的空格、回车会输入整形结束的标志。如果是下面的这种情况,就需要getchar()了 int a;char c;scanf("%d", &a);scanf(%c", &c);而输入是:1001 敲回车 @ 敲回车 ...
网友评论:
莫祥17577438623:
why这个scanf不起作用?它直接结束判断,真的搞不懂,把其改成a=getchar();getchar();也不行,谁能给出对 -
69154佴柏
: #include<stdio.h>void main(){ int year,flag1,flag2=0; char a; printf("请输入年份:\n"); scanf("%d",&year); do { if(year%400==0) flag1=1; else if(year%4==0&&year%100!=0) flag1=1; else flag1=0; if(flag1==1) printf("%d年是闰年\n",year); ...
莫祥17577438623:
c语言菜鸟 -
69154佴柏
: 代码我简单看了一下:第一:if((30+i)*6237=(10*i+3)*3564);错误应该是在这句不但条件有问题,而且还在条件成立时执行了一个空语句,把分号去掉,改为:if((30+i)*6237==(10*i+3)*3564) //注意赋值符号和等号的区别,你写的是赋值符号!...
莫祥17577438623:
C语言 getch和scanf两个输入语句的区别. -
69154佴柏
: getch(): 所在头文件:conio.h 函数用途:从控制台读取一个字符,但不显示在屏幕上 函数原型:int getch(void) 返回值:读取的字符 例如: char ch;或...
莫祥17577438623:
怎么把C语言转为exe文件 -
69154佴柏
: scanf("%d",getch();//需要include,好像是这个getchar();...
莫祥17577438623:
怎么将scanf(“%3d”,&a[k]);改成C++代码? -
69154佴柏
: 怎么将scanf(“%3d”,改成C++代码?表示输入一个3位数的整数,一个5位数的浮点数,再输入一个双精度的浮点数假如有以下代码: int k; float a; double y; scanf("%3d%5f%le", printf(...
莫祥17577438623:
这个小程序错在哪里? -
69154佴柏
: 错误的根本原因在于scanf语句和c++的cin语句不同,它本身没有刷新流的功能,所以下面的scanf("%c",&ch)其实是把上面输入两个数后的换行符(即回车)赋给了ch.所以需要改为scanf("...
莫祥17577438623:
s=a+aa+aaa+aaaa+aaaaa+......+aaaa...aaa(n个)的C程序,我的到底有什么问题呀?我链接的时候 -
69154佴柏
: 程序一共有3个问题..1.这点你也发现了,就是将getchar()换成scanf() ,前者是接受字符的,后者可以用来接收整型的...
莫祥17577438623:
c语言问题 -
69154佴柏
: 逻辑有问题...
莫祥17577438623:
修改scanf使它不只接受回车,做终止符,或者编一个别的函数 -
69154佴柏
: 可以用getch(),它读一个字符返回.但对于汉字你要自己处理了,因为一个汉字是两个字节,当你读到第一个字节大于160时你就要马上再读一个字节,这才是一个完整的汉字.当输入流中无字符可读时,getch处于等待状态. 可以用 kbhit()测试输入流中有无字符可读.这两个函数原型在conio.h这是DOS时代的技术,现在没有写这种代码的必要了了吧.
莫祥17577438623:
用scanf以后 再用scanf或者gets输入一个字符串时上次输入的留下了,怎么办? -
69154佴柏
: 那个1不需要输入,会自动把回车符传给getchar();,因此不需要多输入一个1