Comme vous pouvez le voir ( dumoins j'espere ) j'essaye de creer un fichier dans lequel chauqe ligne est une commande ou j'ai inséré une variable ( tables ).
pour mettre une var au milieu , je pense que tu as 2 possibilites:
- soit tu conais la longueur de ta phrase et pour recupere la vaueur tu fais :
char *phrase;
char *variable=malloc(size(char)*MAX);
int lg_deb=strlen( debut de ta phrase )
int lg_fin=strlen( fin de ta phrase )
int lg = longueur totale .// phrase + variable
strcpy(variable,phrase+lg_deb);
variable[lg-lg_deb]='\0';
- soit tu ne la connais pas et tu devra fgaire un truc du style BLAbLA / variable / BLOBLO et utiliser la fonctoin strtok ( mais je me soiuviens plus trop comment elle marche )
le sizeof(char) c'est facultatif ici, mais est necessaire si tu as un tableau d'int par exemple (sizeof(int))
pour libérer c'est pareil, avec free(variable[i]);
paranoidandroid
Un exemple de l'utilisation de malloc ?
HelloWorld
Ben dans ce cas alors c'est normal aussi : tu lui donne l'adresse d'une variable où stocker la chaine (variable[i]) mais celle-ci n'existe pas (variable[i] est donc à NULL, d'où ton erreur)
T'as bien créé des pointeurs (char *variable[total];) mais ceux-ci ne pointent sur rien.
Deux solutions : tu te compliques avec des malloc et des free pour leur affecter une variable, ou alors tu changes ainsi:
char variable[total][Taille_max_d_une_chaine];
attention, c'est bien char variable et plus char * variable !
paranoidandroid
HelloWorld a écrit a écrit :
ben regarde la liste de parametres de fscanf ...
t'as tout inversé !
je n'ai pas le fichier debvant les yeux pour ecrire le post ...
il s'agit bien de fscanf(fic, "%s", variable[i]);
HelloWorld
ben regarde la liste de parametres de fscanf ...
t'as tout inversé !
paranoidandroid
C'est pour écrire chaque ligne dans un fichier ...
variable est une chaine de caracteres
je veux dans mon fichier:
"BLABLA BLA variable[1] BLOBLO" "BLABLA BLA variable[2] BLOBLO" "BLABLA BLA variable[3] BLOBLO" ... "BLABLA BLA variable[100] BLOBLO"
*variable[total] est pour moi un tableau de chaine de caratere que je lirais dans un autre fichier ... ( Et je bloque en ce moment là dessus )
Lorsque je fais fscanf(variable[i], "%s", fic); j'ai une erreur quio n'apparait pas a la compil mais au debug ... ( variable = NULL )
[edtdd]--Message édité par paranoidandroid--[/edtdd]
HelloWorld
Code :
char variable[total]; /* c'est ça non au lieu de char* variable[total] ???
char resultat[100];
(...)
sprintf(resultat, "%s%c%s", "BLABLABLA BLA ", variable[i], " BLOBLOBLO" );
deathsharp
variable[i] c une phrase ??
et puis ca:
Code :
char phrase="BLABLA BLA BLOBLO";
ca marchera jamais !
et tu veux koi, que ca affiche sur l'ecran chaque truc?
et puis tu insere a quel position, puisque je pense pas que tu mettra blabla...
paranoidandroid
comment faire ça ?
int total=100;
char *variable[total];
char phrase="BLABLA BLA BLOBLO";
for (i=0;i<total;i++)
{
je veux inserer chaque valeur de variable[i] à la phrase ... pour obtenir :
"BLABLA BLA variable[i] BLOBLO"
}
aisni je veux obtenir :
"BLABLA BLA variable[1] BLOBLO"
"BLABLA BLA variable[2] BLOBLO"
"BLABLA BLA variable[3] BLOBLO"
...
"BLABLA BLA variable[100] BLOBLO"