【求助】奇怪的一个scanf问题!
#include<stdio.h>
# x* B" v: d I* _* N. V) G' U$ V/ vint getopts();+ B4 J7 F" g4 S% C. a
int main ()" n9 ]3 \7 A: l# W
{. } D- k8 G" Z( x* H& A
int opt;. Q3 d; a( v5 q1 O3 ]0 u) | h
while (1) {9 v/ g" R3 q- C. Q- i4 X; [
opt = getopts();' ]$ N0 |% x) O% q, [% C
if (opt == 1) {- k6 i. }! C) u5 X
puts("get here!");
% |; q( `* b$ b" Z7 x5 O continue;
! W, |$ Z; E: B9 x' C( O' S I4 `( C }; T# T* A& Q( \7 \& A% u+ k4 B
if (opt == 2)8 @( P3 K; _8 U4 h
return 0;
1 e" C w- E& J0 @6 v } `$ R) t9 f( G5 b7 V% a8 W& }# K
}
. i6 o) }0 Y/ e5 Z6 v9 q5 o2 v. aint getopts(); i! S1 [( H% l: \# F2 [$ H
{
! l5 ?7 G K1 h int opt;
4 w5 X* u* W) {- z3 ^ if (scanf("%d",&opt) != 1)1 V! k* ~+ a: ?1 |# Z: R
return 0;
1 {6 c7 u# y1 J9 O" g: c else! l \9 W4 Z( N4 R+ w2 }1 A
return opt;' K! F' x9 X' ?- @# Z' u) J! G3 F+ m
}
: C- E8 J4 H' v) R8 m这个程序,如果我直接输入0,会直接进入下一循环,等待输入,
$ p8 r, Q7 `: [可是如果我输入字母,虽然主函数中opt值为0,但是却进入死循环,为什么?
+ s% e) z. A/ D8 `; H4 Q ~1 S我本来打算叫getopts直到接收到一个整数时才返回,可怎么也不行,我用scanf的返回值做控制条件也不成,谁帮下忙,看看这个问题到底在哪里?