[QUOTE=onlyflyer]问题是这样的:
' y0 @/ c$ M( v: F) F3 {) C5 f我的程序从终端获取用户的输入,用户的输入有可能是带参数,也有可能是不带参数的
5 s4 v5 R: J" |5 O1 R譬如:) x+ C( k: {1 l1 G+ d0 x
1,不带参数的命令:LIST
2 _* @* }0 ^+ P( P v% }; E3 z2,带参数的命令:GET <filename>8 }1 V% P6 O. T1 Z; ~; a$ u" R
我就是想如何能够灵活的取得用户的输入进行处理,即这几种情况都能处理。5 Z+ @1 u2 V" O) c& y' @1 G8 ?
我本来想用scanf来取用户的输入,如下
" }. n. U# d2 i3 { m' b7 ?- k$ Z char command[20];
& y2 w, q: F9 h. g7 w memset(a, '\0', 20);5 k6 s, l0 h+ U9 q6 D9 w3 _
char parameter[20];0 S6 J+ z1 ^' `% H
memset(b, '\0', 20);/ |8 Z K( e2 v' i3 q% |" F
scanf("%19s%19s",command,parameter);9 m+ y6 r; Y9 t; @+ ~+ u3 ~: l$ m
但是不行,因为必须只有输入两个字符串后scanf后才会返回。我希望的结果是如果没有参数的话,只是输入一个命令然后回车一下就能够返回,这样的话就可以忽略parameter参数。4 a* X# s8 v7 A4 Z" G4 Y5 y* Z
命题比较幼稚,劳驾帮个忙。谢谢[/QUOTE]
1 e2 |7 p1 B' m: n4 w2 r# I8 H9 H4 X$ J$ I( W% C: O- q$ K5 M* \
: p0 S8 x4 h( r7 B
你可以只用一个字符串接收命令和参数。
! k. K+ u# t* s5 }& d! W0 uscanf("%s", commandAndParam );& s- i. D, p6 n( G' p7 _: E, s& k: ?3 M
' h% b" Q2 a: v, t
之后再对字符串进行解析