发新话题
打印

【求助】奇怪的一个scanf问题!

【求助】奇怪的一个scanf问题!

#include<stdio.h>
: ]4 \* f% y6 P7 d! c* v& Q% u, xint getopts();
9 Y3 i7 H" O: G) d+ y5 S/ v: yint main ()5 x; v2 u* O: d' B, J/ f
{
" w+ P4 l$ ^0 I# B8 f# e& Gint opt;
2 ^. S/ h2 j" O% U: hwhile (1) {
9 G" _6 S0 A  e  _opt = getopts();
# p" V7 u5 @+ ?. z# gif (opt == 1) {
: u  l& K' e& Y) Kputs("get here!");
& p9 I7 z6 r  f/ Dcontinue;: c' J& O5 R, ?5 t
}& \+ R2 N  |* w* t" s
if (opt == 2)( T. C  v! p$ S4 ~5 o, o" Y0 s
return 0;1 \# `& O7 H+ Q9 x8 ?  N
}- r9 Z4 ?4 A+ S0 `
}- V* U0 U6 A6 P# s" I3 X
int getopts()' j2 \) z  M9 W4 P* ^( \6 [1 c
{
$ i  P+ ]! j7 b* Cint opt;: j! s, \  D- N- f* _( b6 i$ A6 L" ^
if (scanf("%d",&opt) != 1)6 j( O8 V" I8 v4 ^# {/ r, K3 \
return 0;
( b2 ]+ N3 Q  p  K. \else' s, V5 s4 P$ Z9 Z% i2 [
return opt;* f, E* }/ ^# ^
}
( C, G: }" p/ p  X5 s8 x& `这个程序,如果我直接输入0,会直接进入下一循环,等待输入,
9 M: F$ b" i5 Y) p) s* J7 }可是如果我输入字母,虽然主函数中opt值为0,但是却进入死循环,为什么?
8 O6 N/ D) V0 p: p: D我本来打算叫getopts直到接收到一个整数时才返回,可怎么也不行,我用scanf的返回值做控制条件也不成,谁帮下忙,看看这个问题到底在哪里?      

TOP

......看错了
4 [& b' V& h5 [- y不过楼主的代码还真是容易让人混淆,输入字母的话,你的意思要怎样进行?      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

发新话题