2017-02-26 3 views
0

J'essaie de lire les entrées de l'utilisateur qui seront prises en tant que commandes et certaines méthodes seront exécutées en fonction de l'entrée. Par exemple, l'entrée peut être:Lecture de l'entrée de l'utilisateur avec divers paramètres

allocate 3 
write 3 ABC 10 
quit 

Chaque partie des entrées est des paramètres cruciaux pour leurs méthodes respectives. J'ai essayé de comprendre comment utiliser scanf() et fgets() pour tenir compte de la variation de l'entrée.

Répondre

1

Utilisez fgets() et strtok() combinés et vous pouvez obtenir à quelque chose comme ceci:

#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; 
} 

Sortie:

write 3 ABC 10 

write 
3 
ABC 
10