Convert char** en int sous c

Messages postés
25
Date d'inscription
mardi 3 octobre 2006
Statut
Membre
Dernière intervention
17 août 2012
- - Dernière réponse : 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
Afficher la suite 

3 réponses

Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
0
Merci
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
Commenter la réponse de DeAtHCrAsH
Messages postés
25
Date d'inscription
mardi 3 octobre 2006
Statut
Membre
Dernière intervention
17 août 2012
0
Merci
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
Commenter la réponse de clavz40
Messages postés
25
Date d'inscription
mardi 3 octobre 2006
Statut
Membre
Dernière intervention
17 août 2012
0
Merci
Je viens de trouver une solution completement diffenrte a mon problème

Soucis résolu

Merci
Commenter la réponse de clavz40