[C++]Tableau de pointeru sur chaine de car.

Tableau de pointeru sur chaine de car. [C++] - C++ - Programmation

Marsh Posté le 15-05-2004 à 19:33:56    

Voilà j'ais une erreur si-urement tout conne mais je trouvez pas ou elle est :/
 
j'ais un tableau de pointer sur chaine de char.
 

Code :
  1. char* Var[20];


 
un tableau de char (donc une chaine de car)
 

Code :
  1. char TempVar[SizeLine] = ;


 
SizeLine est = à 80
 
et quand j'essaye de copier un chaine de car dasn le tab j'ais une crois blanche sur fond rouge (memoir ne peut pas être read)
 

Code :
  1. strcpy(*(Var+nbVar),TempVar);


 
nbVar est bien en dessous de 20 et la chaine fini bien par \0, je vois vraiement pas comment faire, j'ais surement oublié un truc à la c*n quelque part mais je trouve pas où et ça me prend la tête.

Reply

Marsh Posté le 15-05-2004 à 19:33:56   

Reply

Marsh Posté le 15-05-2004 à 19:48:13    

std::string var[20];
 
ou bien un std::vector< std::string >
 
tip of the day : tu fais du C++ et pas du C, ne 'loublie pas

Reply

Marsh Posté le 15-05-2004 à 19:50:41    

Avant d'apprendre le C, tu devrais revoir le français. Il y au moins une faute tous les 4 ou 5 mots.


---------------
Cordialement, Xterm-in'Hate...
Reply

Marsh Posté le 15-05-2004 à 19:53:47    

Taz a écrit :

std::string var[20];
 
ou bien un std::vector< std::string >
 
tip of the day : tu fais du C++ et pas du C, ne 'loublie pas


 
Oué c'est vrai mais les profs on tendance à nous faire utiliser les instructions de bases (donc souvent du c), mais ici pas de contraites du genre ^^
 
Pour utiliser ce que tu m'as dit il faut un include spécial ?
Je n'ais jamais utilisé cette classe et je trouves rien sur msdn.
 
Si j'ais bien compris à la place de  

Code :
  1. char* Var[20];


 
je mets ça  
 

Code :
  1. std::string var[20];


 
Edit avec un #include <string> ça passe
 
Pour le strcpy je dois utiliser quoi ? car là ça fonctionne plus :/
 

Code :
  1. 'strcpy' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'char


 
focément


Message édité par nightmare682 le 15-05-2004 à 19:58:33
Reply

Marsh Posté le 15-05-2004 à 19:55:09    

#include<string>


---------------
Cordialement, Xterm-in'Hate...
Reply

Marsh Posté le 15-05-2004 à 20:00:38    

xterminhate a écrit :

#include<string>


 
OK merci, tu as répondu pendant l'édit j'avais posté là question un peut trop tot (avant d'activer le cerveau en faite  :D )
 
Pour le strcpy tu sais encor m'aider ? c'est le seul prob qu'il me reste encore dans le programme (la dll plutot).

Reply

Marsh Posté le 15-05-2004 à 20:15:38    

tu dégages tes strcpy et tu fais à l'intuition
 
var[i] = "plop";
var[j] = autreString;

Reply

Marsh Posté le 15-05-2004 à 20:16:36    

Reply

Marsh Posté le 15-05-2004 à 22:16:22    

nightmare682 a écrit :

Voilà j'ais une erreur si-urement tout conne mais je trouvez pas ou elle est :/
 
j'ais un tableau de pointer sur chaine de char.
 
un tableau de char (donc une chaine de car)
 
SizeLine est = à 80
 
et quand j'essaye de copier un chaine de car dasn le tab j'ais une crois blanche sur fond rouge (memoir ne peut pas être read)
 
nbVar est bien en dessous de 20 et la chaine fini bien par \0, je vois vraiement pas comment faire, j'ais surement oublié un truc à la c*n quelque part mais je trouve pas où et ça me prend la tête.


 
Winner!  :sol:


Message édité par Ace17 le 15-05-2004 à 22:16:41
Reply

Marsh Posté le 16-05-2004 à 00:41:09    

Reply

Marsh Posté le 16-05-2004 à 00:41:09   

Reply

Marsh Posté le 16-05-2004 à 13:29:09    

Ace17 a écrit :

Winner!  :sol:


 
 :sweat: Désolé faut que j'arrettes de faire picoler mon clavier, il écrit vraiement n'importe comment apres  :D


Message édité par nightmare682 le 16-05-2004 à 13:40:28
Reply

Marsh Posté le 16-05-2004 à 13:39:35    

En faite j'ais un gros prob, c'est que la string je dois l'ajouter à la fin d'une autre de type Char[80], j'utilisais strcat.
Le prob est que je ne peux pas changer le type de cette chaine, je la passe dans cette fonction et j'utilise un tab de pointeur sur fonctions pour y arriver, donc je devrait changer toutes mes autres fonctions.
 
Je dois rendre ça demain tout marchait nikel mais j'avais oublié une petite partie, donc j'ais plus trop le temps de faire une grosse modif comme ça  :sweat:  
 
J'vais essayer d'utiliser quand même strcpy il doit bien y avoir moyen, je gardes vos solutions pour les autres fois, ou je l'utiliserais dès le début du projet, ça me parrait quand même plus efficasse.

Reply

Marsh Posté le 16-05-2004 à 13:47:05    

1) passe en tout string
2) tu peux on convertir temporairement une string en char* accessible en lecture seule
strcpy(char_etoile, ma_string.c_str());

Reply

Marsh Posté le 16-05-2004 à 14:04:54    

nightmare682 a écrit :

:sweat: Désolé faut que j'arrettes de faire picoler mon clavier, il écrit vraiement n'importe comment apres  :D


[:rofl] encore!!! encore!!

Reply

Marsh Posté le 16-05-2004 à 14:34:23    

Taz > grand merci à toi (et aux autres aussi)
Ace17 > Arrette tu vas vexer mon clavier ^^
 
EDIT : me revoila  :sweat:  
 
Bon j'ais vraiement du mal, mais j'ais encore un problème
 
J'ais mis ça pour tester suite au problème
 

Code :
  1. std::string Var[20];
  2. Var[0]=TempVar;
  3. Var[1]=TempVar1;
  4. strcpy(Retour,Var[0].c_str());
  5. strcat(Retour,Var[1].c_str());


 
il ne m'affiche que le contenu de Var[0]  
 
std::string Var[20]; me déclare bien un "tableau" (ou une autre structure) avec 20 string ?
 
 [:alph-one]  je crois que je suis pas doué pour le C++ (oui Ace17 je sais pour l'orthographe non plus)


Message édité par nightmare682 le 16-05-2004 à 14:57:19
Reply

Marsh Posté le 16-05-2004 à 15:10:00    

si ta besoin que Retour soit un c-style string, tu fait tout avec std::string et tu converti a la fin

Reply

Marsh Posté le 16-05-2004 à 15:16:40    

skelter a écrit :

si ta besoin que Retour soit un c-style string, tu fait tout avec std::string et tu converti a la fin


 
Ben c'est pas vraiment ça le problème,  
 
quand je fais ça  

Code :
  1. Var[0]=TempVar;
  2. strcpy(Retour,Var[0].c_str());


 
Ca fonctionne, mais c'est lorsque que je met quelques chose dans les autre  élément de Var que ça ne fonctionne plus, je ne sais aps si c'est quand je met dedasn ou quand je vais le rechercher.
 
par exemple
 

Code :
  1. Var[1]=TempVar;
  2. strcpy(Retour,Var[1].c_str());


 
ça ne me met rien dans Retour.


Message édité par nightmare682 le 16-05-2004 à 15:16:59
Reply

Marsh Posté le 16-05-2004 à 15:41:36    

?

Code :
  1. std::vector< std::string > Var;
  2. Var.push_back(TempVar);
  3. Var.push_back(TempVar1);
  4. std::strncpy(Retour,Var[0].c_str());
  5. ...


Reply

Marsh Posté le 16-05-2004 à 16:27:43    

skelter a écrit :

?

Code :
  1. std::vector< std::string > Var;
  2. Var.push_back(TempVar);
  3. Var.push_back(TempVar1);
  4. std::strncpy(Retour,Var[0].c_str());
  5. ...



1 aucun intérêt à utilisert un vector
2 tu ne sais pas te servir de strncpy, son usage est d'ailleurs tout à fait inutile ici.

Reply

Marsh Posté le 16-05-2004 à 16:32:45    

skelter a écrit :

?

Code :
  1. std::vector< std::string > Var;
  2. Var.push_back(TempVar);
  3. Var.push_back(TempVar1);
  4. std::strncpy(Retour,Var[0].c_str());
  5. ...




 
C'ets bon c'était une errur de ma part, c'est résolu, merci à tout le monde pour l'aide (et les correction d'orthographe  :D )

Reply

Marsh Posté le 16-05-2004 à 16:34:55    


oui c'est strcpy
 
l'utilité d'un vector ? ba j'ai remplacé son tableau par un vector, c'est tout, c'est sur que la c'est completement inutile

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed