|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité régulier
![]() Inscription : juin 2010 Messages : 33 ![]() |
Coucou tous le monde,
Je fais fasse a un problème enfantin que je ne sais pas comment résoudre. Lors de ma lecture de fichier, je lit des lignes d'entier, celle-ci peut être suivie d'un caractère préalablement définis. fichier.txt Code :
Principalement sur la détection. Code :
maMatrice Code :
Cordiallement |
||||||
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour,
Est-ce que ce 'f' est réellement utile? Tu sembles mettre un f à chaque fin de ligne non-complète, dans ce cas là, est-ce qu'avec un getline puis un stringstream (sstream) tu ne peux pas remplir ta matrice et mettre la valeur 1 000 aux éléments manquants ?
__________________
Recherche devs C++ motivés et sérieux pour Last Dungeon. Chaîne Youtube : Vidéos Ma page DVP : http://neckara.developpez.com/ |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : juin 2010 Messages : 33 ![]() |
Merci Neckara pour ta réponse.
Je viens de chercher et je n'ai pas compris comment utiliser le sstream. Peux tu me l'expliquer par un exemple. Merci |
|
|
00
|
|
|
#4 |
![]() ![]() |
La FAQ C++ contient tout ce qu'il faut savoir
http://cpp.developpez.com/faq/cpp/?p...NGS_convert_to http://cpp.developpez.com/faq/cpp/?p...NGS_convert_to http://cpp.developpez.com/faq/cpp/?page=SL Pour plus d'information : http://www.cplusplus.com/reference/s.../stringstream/ Pour un exemple de code : http://khayyam.developpez.com/articl...ge=page_2#LIII Après c'est le genre de chose où il est impératif de savoir chercher et comprendre par soi-même.
__________________
Recherche devs C++ motivés et sérieux pour Last Dungeon. Chaîne Youtube : Vidéos Ma page DVP : http://neckara.developpez.com/ |
|
|
00
|
|
|
#5 | ||||||
|
Invité régulier
![]() Inscription : juin 2010 Messages : 33 ![]() |
Merci Neckara pour toute ces docs, mais je suis encore plus perdu, et c'est pas faute d'avoir chercher.
Je penses que le principal problème provient du fait que je n'arrive pas a détecter le 'f' ainsi que sa position dans le string issu de la getline. Comment fait'on pour détecter le caractère 'f' dans un flux. Actuellement et fonction de tes indication, je fais : test.txt Code :
Code :
Code :
Plusieurs questions : Pour la premiere ligne n'est'elle lue que durant la seconde iteration ? Ensuite pourquoi oss.peek='f' n'est'il pas reconnu ? Enfin pourquoi la valeur des case egale ou superieur a la position de f, on leur valeur modifier a 4 ? Sachant que toutes les cases sont initialisée a MMAX lors de la création de la matrice. J’espère que vous pourrez m'aider car je pédale dans mon code depuis un bon bout de temps. Merci Kosen |
||||||
|
|
00
|
|
|
#6 | ||
![]() ![]() |
Bonjour,
Pourquoi chercher compliqué ? Code :
__________________
Recherche devs C++ motivés et sérieux pour Last Dungeon. Chaîne Youtube : Vidéos Ma page DVP : http://neckara.developpez.com/ |
||
|
|
20
|
|
|
#7 | ||
|
Invité régulier
![]() Inscription : juin 2010 Messages : 33 ![]() |
Merci sa marche.
Petite question afin de comprendre : stringTemp comporte toute la ligne jusqu'à '\n', et de ce fait oss aussi. Comment se fait'il que le caractère 'f' ne soit pas incorporé dans valeur? La réponse intuitive serait la suivante, les deux types sont different donc on stocke pas la valeur de 'f'.Enfin, comment faudra t'il traiter une ligne tel que celle-ci : Ou y et x des valeurs a modifier. Je serait tenté de faire: Code :
|
||
|
|
00
|
|
|
#8 |
![]() ![]() Cyrille Network programmer Inscription : juin 2010 Messages : 1 541 ![]() |
valeur est un int, l'opérateur >> a été surchargé et s'il ne peut pas lire un int il te retournera faux. (enfin il me semble que c'est plus compliqué que ça, il est sensé retourner l'objet pour pouvoir chainer les appels, donc faut gérer du flag d'erreur normalement non ?)
Tout simplement. Si tu veux lire ton f, il faut le lire dans un char. Si le format du fichier se complexifie, il faut complexifier la logique de lecture. http://www.cplusplus.com/reference/i...perator%3E%3E/ |
|
|
00
|
|
|
#9 | |
![]() ![]() |
Citation:
Ensuite lors d'un if(stream >> value) le flux est implicitement convertie en void * grâce à un opérateur de convertion (operator(void *) si je ne me trompe pas) qui est à son tour convertit en bool. Lorsqu'on fait : if( ! stream >> value), on utilise l'opérateur ! qui a été redéfini pour les flux et qui retourne un booléen. Ces différents opérateurs ne retourneront pas vrai ou faux si l'opération a échouée mais si le flux est valide ie si good() retourne true. Pour plus de détails cf : http://www.cplusplus.com/reference/ios/ios/ En particulier : clear(), eof(), bad(), fail(), operator void *, operator!
__________________
Recherche devs C++ motivés et sérieux pour Last Dungeon. Chaîne Youtube : Vidéos Ma page DVP : http://neckara.developpez.com/ |
|
|
|
20
|
|
|
#10 | |
![]() ![]() |
salut,
Citation:
__________________
en bas de page
|
|
|
|
00
|
|
|
#11 |
![]() ![]() Cyrille Network programmer Inscription : juin 2010 Messages : 1 541 ![]() |
Effectivement, je l'ai vu quelques minutes après
http://www.cplusplus.com/reference/i...erator_voidpt/ |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com