小白初学C语言,求大神指点。。
c语言吧
全部回复
仅看楼主
level 3
qaz1253055078
楼主
我是想输入的是整数或者浮点数可以继续,输入的是其他字符就能提示输入错误并返回重新输入,但是我写出了返回命令之后,输入其他字符,回车之后是提示错误了,但是不能重新输入,无论按什么键就直接提示错误。我这个哪里错了,求大神指点指点,谢谢。
2014年01月26日 05点01分
1
level 6
Royal罗
我也是小白,但是这个问题遇到过,你试试getchar
2014年01月26日 05点01分
2
qaz1253055078
额··这个···能不能帮我修改一下··这个我不知道怎么写
2014年01月26日 05点01分
Royal罗
回复 qaz1253055078 :你试试这样, while(1) { printf("请输入任意数字。。。。"); fflush(stdin); scanf("%f",&a); }
2014年01月26日 12点01分
qaz1253055078
回复 Royal罗 :貌似也不行... while(1){ printf("输入任意数字,整数或小数都行,按回车继续(下同)\n"); fflush(stdin); scanf("%f",&a); printf("输入有误,请重新输入\n"); system("pause");} 这样连输入数字也不行了...
2014年01月27日 03点01分
level 6
Royal罗
getchar貌似有点问题,得在想哈马上
2014年01月26日 05点01分
3
level 6
Royal罗
楼主我思维比较复杂,写的代码不是那么简洁哈,见谅
2014年01月26日 06点01分
4
qaz1253055078
没事。。你写出来我琢磨一下。。顺便学习一下
2014年01月26日 06点01分
level 12
chikumei
你得继续研究scanf
2014年01月26日 06点01分
5
qaz1253055078
嗯。。
2014年01月26日 09点01分
贴吧用户_04VV1ey
回复 qaz1253055078 :scanf。。
2014年01月26日 10点01分
level 10
Angel嫁给Demon
学习C一起研究~秋秋 114 777 23
2014年01月26日 06点01分
8
level 13
642985327
莫非是Scanf把你的回车键吃掉了?在程序里面加一个Printf a看会输出什么
—我是一条很乖很可爱的小尾巴~
—我是一条可以吃的小尾巴~
—小尾巴当然是越多越好~
2014年01月26日 06点01分
9
qaz1253055078
在哪里加呢?
2014年01月26日 09点01分
level 6
Royal罗
楼主,我啥都发不出来……→_→
2014年01月26日 07点01分
12
qaz1253055078
那写好截图也成啊····
2014年01月26日 09点01分
level 11
贴吧用户_04VV1ey
回复 qaz1253055078 :scanf。。
2014年01月26日 10点01分
13
qaz1253055078
scanf那里错了?
2014年01月26日 10点01分
贴吧用户_04VV1ey
回复 qaz1253055078 :
2014年01月27日 11点01分
level 8
s小屋
嗯,我的看看整个程序,能不能麻烦楼主贴出来看看
2014年01月27日 13点01分
14
qaz1253055078
发了···
2014年01月28日 02点01分
s小屋
回复 qaz1253055078 :
在哪?
2014年01月28日 12点01分
level 9
潇洒背影º
很好解释,scanf("%f",&a);比如输入j的话 会进入循环,但是输入流中没变还是j,因为读入不成功。 然后你懂得。。。
2014年01月27日 13点01分
15
qaz1253055078
什么叫输入流?求指点..
2014年01月28日 02点01分
level 13
小_埃
你需要在循环里加一句fseek(stdin, 0, SEEK_END);
2014年01月27日 13点01分
16
潇洒背影º
太高端了0 0 吓跑新人的
2014年01月27日 14点01分
qaz1253055078
回复 hehewsw :
不懂
2014年01月28日 02点01分
level 3
qaz1253055078
楼主
@s小屋
初学者请见谅,求不笑,写这个是为了逗逗个朋友
。。。
2014年01月28日 02点01分
17
level 10
大湾区生猛野汉
这个程序牛X啊
2014年01月28日 02点01分
18
qaz1253055078
大神就别笑我这个小白了。。
2014年01月28日 03点01分
level 10
大湾区生猛野汉
其实是因为你的循环条件设置的不对,进入死循环了
2014年01月28日 02点01分
19
qaz1253055078
怎么解决。。求指点
2014年01月28日 03点01分
大湾区生猛野汉
回复 qaz1253055078 :while(1)里面的1表示循环条件永远成立的,这不是作死吗?你应该设置为当达到某种条件的时候就不成立了才行
2014年01月28日 11点01分
level 11
2639439
在printf("输入有误");后面加getchar();
2014年01月28日 03点01分
20
qaz1253055078
这个貌似用来停顿的吧。。
2014年01月28日 09点01分
level 1
zhkailing
你搜索一下scanf的函数使用方法就知道了,这个很明显是对的scanf不了解导致的
2014年01月28日 04点01分
21
qaz1253055078
好的。。
2014年01月28日 09点01分
zhkailing
回复 qaz1253055078 :简单说scanf读取到非匹配字符后会将其放回原处,等待下次使用,比如scanf("%d",&i),你输入100A后,将会将100传给i,剩下的A后再下一次scanf调用时处理,而不会消失。如你例子,j不会和%d匹配,下次调用scanf还会传入j这个字符,自然也不会匹配。你可以输入j100试试结果。
2014年01月28日 10点01分
zhkailing
回复 zhkailing :j100也同样不会传入100.这个是scanf函数的工作方式
2014年01月28日 10点01分
level 8
漠子珺book
楼主学C多久了,什么基础呀!我一只瞧着,不知往那方面学呀!还望楼主指点呀!
2014年01月28日 11点01分
23
level 8
漠子珺book
楼主学C多久了,什么基础呀!我一只瞧着,不知往那方面学呀!还望楼主指点呀!
2014年01月28日 11点01分
24
level 13
麻头头🐼
a不为1,while的条件一直成立,所以一直循环。可以试试在用break跳出循环,或者在while里加入输入a的语句。希望能帮到楼主
2014年01月28日 11点01分
25
麻头头🐼
或者直接吧scanf语句放在while之前试试
2014年01月28日 11点01分
1
2
尾页