Récupérer les nombres d'une chaine de caractère ??? - C - Programmation
Marsh Posté le 19-06-2012 à 19:11:38
UDP, tu parles du protocole internet ? Parce que dans ce cas, pourquoi tu n’envoies pas directement tes doubles ?
Sinon, ben faut parcourir ta chaine de caractère et découper à chaque ',' en stockant ça dans un tableau de char*.
Marsh Posté le 19-06-2012 à 20:23:08
En utilisant sscanf, ça se fait facilement :
Code :
|
Marsh Posté le 24-06-2012 à 22:12:56
Terminapor a écrit : UDP, tu parles du protocole internet ? Parce que dans ce cas, pourquoi tu n’envoies pas directement tes doubles ? |
Attention, le codage des doubles peut varier d'une architecture à l'autre. On ne peut pas envoyer des doubles en brut et être assuré qu'ils seront compris de la même façon de l'autre coté...
Terminapor a écrit : Sinon, ben faut parcourir ta chaine de caractère et découper à chaque ',' en stockant ça dans un tableau de char*. |
Ce que fait strtok_r()...
Marsh Posté le 25-06-2012 à 00:09:57
Sve@r a écrit : |
Oui, mais normalement c'est possible justement de régler le problème de big/low endian, après je sais pas comment on fait.
Sve@r a écrit : |
Possible, je programme pas en C
Marsh Posté le 25-06-2012 à 17:00:17
Terminapor a écrit : |
Un proc qui manipule des ints en little endian peut tout à fait avoir son unité de float en big endian, donc en général, oui, c'est plutôt parce que tu ne peux pas directement faire des htonl ou ntohl bêtement.
Marsh Posté le 19-06-2012 à 19:06:27
Bonjour,
Je récupère par UDP une chaine de caractère composé de réelles séparés par des virgules.
Je voudrais récupérer dans un tableau de double ces chiffres (sans les virgules).
Pour convertir un char en double, je dois utiliser atof (sauf erreur de ma part).
Mon problème est que je n'arrive pas à récupérer et stocker chaque chiffre entre virgules.
Par exemple :
- Si je recois par UDP :
maChaineUdp = "23.165313, 2.461, 789.1131323123 etc...";
- Je voudrais avoir :
chiffreRecu[0] = 23.165313;
chiffreRecu[1] = 2.461;
chiffreRecu[2] = 789.1131323123;
etc... ;
Comment faire SVP je n'y arrive vraiment pas ?
Merci.