2017-02-26 18 views
0

私はコマンドとして取り込まれるユーザ入力を読み込もうとしており、入力に基づいて特定のメソッドが実行されます。たとえば、入力は次のようになります。さまざまなパラメータでユーザ入力を読む

allocate 3 
write 3 ABC 10 
quit 

入力の各部分は、それぞれのメソッドの重要なパラメータです。私はscanf()fgets()を使用して入力のばらつきを説明する方法を見つけようとしてきました。

答えて

1

使用fgets()strtok()を合わせて、あなたはこのような何かに取り掛かることができます。

#include <stdio.h> 
#include <string.h> 

int main(void) 
{ 
    char mystring [100]; 
    char *pch; 
    while(fgets (mystring , 100 , stdin)) /* break with ^D or ^Z */ 
    { 
     //puts (mystring); 
     pch = strtok (mystring," ,.-"); 
     while (pch != NULL) 
     { 
      // do someting with pch, check if it's a command or an argument 
      printf ("%s\n",pch); 
      pch = strtok (NULL, " ,.-"); 
     } 
    } 
    return 0; 
} 

出力:

write 3 ABC 10 

write 
3 
ABC 
10 
関連する問題