发新话题
打印

请教一个scanf的问题

请教一个scanf的问题

cha *str;7 k# d/ }: K9 t
scanf( "%s", str );
  d4 f$ b9 k2 y& Z1 P. _如果输入为:abc  def
6 V5 a; o+ P" j则str的结果为abc,因为中间有空格,输入后直接变为'\0'字符了6 L, T* U! }3 p1 a# q0 u

1 e+ K: t* J% m9 R# Q现在的问题是,我得应对两种情况:0 C9 ^' g' b9 B2 }  [3 \
1、直接输入命令,如ls
+ C% m! d( U) p' `' `8 j2 R$ ?3 [/ S2、命令后面还带有参数,如ls dir
! y6 N9 S) a  H5 A6 d
: O" _1 H2 N) K: d( t2 d- ~这个时候,我怎么做才比较合适,才能判断输入的是只有命令的形式,还是命令带参数的形式呢?如果能象:3 h# u. {9 h+ G: e/ z+ Z# {" k
int main ( int argc, char **argv )中的argc可以判断参数个数,然后参数在argv中那就很好了。哪位能指点我一下,谢谢!& O* r& b- g5 T: \6 X" Z7 h7 m
" n9 r! r4 d7 W( \& p( _+ S. ^
用scanf ( " %s  %s ", str1, str2 );的话,如果ls后面没有输入,就不行,程序会一直等待另外一个字符串的输入。      

TOP

用 fgets() 读入一整行, 然后再解析      
'
梅须逊雪三分白 雪却输梅一段香

TOP

再读一个字符      

TOP

发新话题