Convert char** en int sous c

clavz40 Messages postés 25 Date d'inscription mardi 3 octobre 2006 Statut Membre Dernière intervention 17 août 2012 - 30 juil. 2010 à 19:24
clavz40 Messages postés 25 Date d'inscription mardi 3 octobre 2006 Statut Membre Dernière intervention 17 août 2012 - 3 août 2010 à 16:58
Bonjour a tous,

Je développe une petite application en c pour appareil de lecture de code barre dont je récupère les infos.

J'avais besoin d'une fonction split comme en c#, je me suçis donc servis de ce lien:
http://www.cppfrance.com/code.aspx?ID=33276

Problème a la fin pour ma condition, je dois comparer un int mais la fonction me renvoi un char** !

Comment faire la conversion?

Merci

3 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
30 juil. 2010 à 19:40
Salut,

La fonction te renvoi un tableau de chaine de charactère d'ou le char **.
Pour faire simple voici a quoi ton code doit ressembler :

char ** splitTab = split("12;25;36;08;12", ";", 0);

int i = 0;
while(splitTab[i] != NULL)
{
int myInt = atoi(splitTab[i]);
i++;
}

Shell
0
clavz40 Messages postés 25 Date d'inscription mardi 3 octobre 2006 Statut Membre Dernière intervention 17 août 2012
3 août 2010 à 11:49
Merci pour ta reponse, je me servais bien de la fonction atoi mais elle me renvoyé toujours 0, d'ou mon doute sur la conversion du char**!

En fait le problème vient d'un autre endroit. Je vous explique ce que je souhaite faire.

Avec un bippeur de code barre, j'enregistre le matricule et l'heure de passage du personnel dans un fichier .csv sous la forme M750935;03/08/2010 10:22:25.

Mon problème est le suivant, j'arrive correctement a récupérer les lignes du fichiers .csv:
while( fgets(buffer,sizeof(buffer),csv) )
{
sscanf(buffer, "%[^;],%s", val1,val2);
....
}
J'ai donc le matricule dans ma variable val1, par contre la variable val2 reste vide, bizarre !

Ce que je souhaiterais c'est réucpérer l'heure, juste le 10 heure de cette chaine M750935;03/08/2010 10:22:25 qui est toujours de la meme forme!

Dans la mesure ou la chaine fait toujours la meme longueur, n'y a t'il pas moyen de récupérer le 13eme et 14eme caractère de la chaine et de le convertir en int que je puisse le comparer ?

Je galère, dur, dur le passage du c# au c. Cela fait un sacré bon dans l'histoire!


Merci de votre aide
0
clavz40 Messages postés 25 Date d'inscription mardi 3 octobre 2006 Statut Membre Dernière intervention 17 août 2012
3 août 2010 à 16:58
Je viens de trouver une solution completement diffenrte a mon problème

Soucis résolu

Merci
0
Rejoignez-nous