Accueil > Forum > > > > lecture + conversion char->double
lecture + conversion char->double
samedi 19 novembre 2005 à 18:54:19 |
lecture + conversion char->double

obby
|
Bonjour, Je suis un peu embéter car je ne vois pas trop comment faire pour exposé mon petit souci. Je vais essayer d'être le plus clair possible. En fait, je dois récupérer des valeurs organisées en colonnes dans un fichier. En fait, j'ai plusieurs colonnes qui correspondent à des choses différentes et qui sont séparé par des tabulations, par exemple: DATA1 DATA2 DATA3 DATA4..... '\n' .0000E+00 .0000E+00 ... \n le problème consiste à récuperer les valeurs. J'arrive à récuperer la ligne entière sous forme d'une chaine de caractère et j'ai pensé à utiliser la fonction "double atof(char*)". Cependant, comment faire pour découper proprement cette chaine avant de faire la conversion. Et est-ce que la conversion va prendre en compte la partie "E+00"??
|
|
samedi 19 novembre 2005 à 20:20:27 |
Re : lecture + conversion char->double

deck_bsd
|
utilise sscanf(variable_contenant_ta_ligne,"le format",variables_recevant_le_text_séparé); le format : exemple "%[^;];%[^;];" cela signifie qu'il prend tout le text avant le ; il y a deux %[^;]; car une part colone. exemple de code : sscanf(lecture,"%[^;];%[^;];%[^;];",data.nom,data.date,data.acces); Voila, je me doute que l'explication est limite, si tu comprend pas trop, dit le moi j'esseyerai de te l'expliquer mieu. Bon code ++ALL
|
|
dimanche 20 novembre 2005 à 01:17:45 |
Re : lecture + conversion char->double

Joky
|
Mé non, c'est d'la perte de temps :) Récupérer la chaîne et ballader un ptit pointeur :) if(!Meilleur("Joky")) return ERREUR;
|
|
dimanche 20 novembre 2005 à 09:39:59 |
Re : lecture + conversion char->double

deck_bsd
|
Aussi, mais s il faut séparé pour mettre a chaque fois dans une variable différentes, le sscanf() est mieu.
|
|
dimanche 20 novembre 2005 à 13:30:34 |
Re : lecture + conversion char->double

obby
|
euh j'suis pas sur d'avoir bien compris comment on utilisait cette fonction sscanf(). Cela récupère bien des chiffres et non des caractères car la partie chaine de caractère, ca y'a pas trop de problème. je vais essayer pour voir ce que ca donne malgré tout.
|
|
dimanche 20 novembre 2005 à 13:51:51 |
Re : lecture + conversion char->double

deck_bsd
|
Si tu n'y arrive pas esseye comme dit joky de "ballader un petit pointeur".
|
|
dimanche 20 novembre 2005 à 14:28:56 |
Re : lecture + conversion char->double

obby
|
il faut un %[^;]; pour chaque colonne ??? car si oui, il est évident que cela n'est pas possible pour moi d'utiliser cette fonction car je ne connait pas par avance le nombre de colonnes (ni de lignes) dans les fichiers, cela est variable!! Pour l'histoire du pointeur, j'ai essayé mais ca marche dans le mauvais sens, j'enlève la partie qui m'interresse : f1.getline (c,512,'\n'); double a = 0.0; d=c; while (*d != '\n') { while(*d != ' ') { d++; } d++; }
|
|
dimanche 20 novembre 2005 à 15:09:39 |
Re : lecture + conversion char->double

deck_bsd
|
Ha autant pour moi je pensait que tu connaisait le nombre de colones. Oui alors le pointeurs est plus pratique. exemple: void recup(char *ligne){ char *lignetemp; char carac; lignetemp =ligne; while(*lignetemp){ carac=*ligne; if(carac==' '){ lignetemp++; ligne++ }else{ *lignetemp=carac; lignetemp++; ligne++; } } } en claire, tantque la ligne est pas terminée on parcours la ligne et si le caractère contenut dans carac est égale a tab en passe au caractère suivant sans l'avoir affecter a la variable ligne temp.
|
|
dimanche 20 novembre 2005 à 16:09:21 |
Re : lecture + conversion char->double

Joky
|
char *c = szChaine; int iIndex = 0, iSize = 0,i=0; Tant que *c différent de '\0' Si *c == ' ' Alors copier de iIndex à iIndex+iSize szChaine dans une variable data[i] Tant que *c == ' ' On avance le pointeur (c++) et l'index (iIndex++) Fin Tant Que On incrémente i On réinitialise la taille à 0 (iSize = 0) Fin Si On avance le pointeur (c++) Si ce n'est pas le premier mot(i != 0) On avance l'index (iIndex++) Fin Si On avance la taille (iSize++) Fin Tant que if(!Meilleur("Joky")) return ERREUR;
|
|
dimanche 20 novembre 2005 à 17:57:59 |
Re : lecture + conversion char->double

obby
|
voila ce que j'ai fait, ca marche pas mal, le seul problème c l'optimisation mémoire qui m'a pas l'air au top for (int i = 0; i< NbLignes;++i) { f1.getline (c,512,'\n'); double a = 10.0; d=c; while (*d != 0) { CString tmp; while((*d != ' ')&&(*d !=0)) { tmp += *d; d++; } d++; int len = tmp.GetLength (); val = new char [len]; for (int k=0;k<len;++k) { val[k] = tmp[k]; } val[len]=0; a = atof(val); }
|
|
Cette discussion est classée dans : lecture, conversion, valeurs, char, double
Répondre à ce message
Sujets en rapport avec ce message
CONVERSION DOUBLE CHAR [ par DeAtHCrAsH ]
Salut,J'ai un ptit pb... Je suis debutant et j'ai un ptit prob...Je veux utiliser la fonction atof mais quand je compile ca me dit : undeclared identi
Conversion char -> double [ par titpeste ]
Bonjour,je manipule des doubles avec 20 chiffres a peu pres derriere la virgule.Ils sont stockés dans des chaines de caracteres.Mais lorsque je fais u
conversion double -> char [ par juliedb ]
voila on a un probleme....examen dans qql heure et on voudrait savoir comment convertir des variables double en char...
Conversion char -> double [ par obby ]
Bonjour, J'ai un petit souci, j'utilise la fonction atof() pour faire la conversion d'une chaine de caractère (ex : ".00000E+00") vers un double. C
conversion double en char* [ par snakers07 ]
bonjour, voici mon probleme void grilleSetText(ligne,colonne,char*Text;) est une fonction comme ont peut le voir qui pren en parametre char*or j'ai un
constructeur de conversion explicite [ par eishtein ]
bonjour les gars; comme je suis un débutant en c++, j'aimerais bien savoir comment on pourrait convertir un nombre de type quelconque en un nombre de
Problème renommer des fichiers avec la fonction rename() [ par kepon72 ]
Bonjour, Voila j'ai coder un petit programme en C qui me permet de renommer des fichiers .avi présent dans un répertoire de la même façon le Titre est
warning: deprecated conversion from string constant to 'char*' [ par flateur18 ]
Bonjour à tous, j'ai réalisé un programme gcc qui se compile parfaitement, or j'ai des "warning" que je souhaiterais supprimer. celui qui m'énerve m
Lecture/ Ecriture de valeur à artir d'un fichier texte [ par twity_osa ]
Bonjour Je suis un débutant en C et j'ai un projet qui a pour objet la compression d'image...donc je doit faire stocker l'image (les valeurs des pixe
Livres en rapport
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|