Aide sur un tableau de char

andoid Messages postés 108 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013 - 14 oct. 2011 à 14:44
andoid Messages postés 108 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013 - 15 oct. 2011 à 15:28
Bonjour
je voulais stocker sur un tableau de char** cmd;
une commande entrée au clavier genre cat test.txt
j'ai utilisé strtok mais j'ai un probleme de segmentation je vous montre le code:

#include<stdio.h>
#include<stdlib.h>
#include
#define TAILLE 120

char retour[TAILLE];
char* getcommande()

{


fgets(retour,TAILLE,stdin);
return retour;

}

char* DecouperCommande(char* retour)
{

char* c;
c=strtok(retour," ");
while(c=strtok(NULL," "))
{
return c;
}

}

int main()
{
int i=0;
char* recup_retour,recup;

printf("My shell\t");


recup_retour=getcommande();
printf("recup=%s",recup_retour);

return 0;
}

5 réponses

BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
14 oct. 2011 à 15:55
Hello,
Toujours pas résolu ton problème?
Juste un truc - j'ai pas tout regardé - mais étant donné que ta variable retour est globale, inutile de la passer en paramètre de tes fonctions, et encore moins dans les retours de celle-ci...


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
14 oct. 2011 à 16:08
Voici un code fait à la va-vite.
Tu peux t'en inspirer pour ton cas.

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

int main(void) 
{ 
  char recup[1024];
  char* command;

  // get the command line
  printf("My shell\t:"); 
  gets(recup); 

  //print to check what we get 
  printf("recup=%s\n",recup);

  // cut and print the different commands
  command = strtok (recup," -");
  while (command != NULL)
  {
    printf ("%s\n",command);
    command = strtok (NULL, " -");
  }

  return 0; 
} 



@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
andoid Messages postés 108 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013
15 oct. 2011 à 13:31
Par contre tu peuts m'expliquer vite fait cette boucle j'ai pas trop compris ce quelle fait stp:
for(i=0;i<n;i++)
{
for(;isspace(*t);t++);

args[i] = t;

for(;!(*t == 0 || isspace(*t));t++);

*t++=0;
}
0
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
15 oct. 2011 à 14:38
Ça va être compliqué sans le contexte ... Où as-tu chopper ce code?

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
andoid Messages postés 108 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013
15 oct. 2011 à 15:28
c'est un code d'un prof :
arg est un char**
t est un char*
0