{debutant}EOF après l'EOF? Oda? [C++] - C++ - Programmation
Marsh Posté le 15-10-2006 à 22:10:14
c'est du C pourri
utilise std::getline
while (std::getline(std::cout, line)) { travailler; }
Marsh Posté le 15-10-2006 à 22:12:19
et au passage, eof() ne fait pas ce que tu crois ou ce qu'on ta enseigné. Ça ne détecte pas la fin de fichier, ça caractérise une erreur comme eof.
Marsh Posté le 15-10-2006 à 22:16:51
char MapChar[250][250];
char * pMapChar[250];
...
pMapChar[y]=&MapChar[0][y];
MapFile.getline(pMapChar[y], 30000);
et on y croit très fort. Débarasse toi de tous ces char*, soit intelligent, utilise std::string
Marsh Posté le 16-10-2006 à 12:33:02
je comprends pas bien.. comment je peux utiliser le type string si je veux utiliser chaque caractère séparement? string s[n][n2]?
edit : bon, j'ai capté a peu près.. ya l'équivalent de strtok pour un string?
bon jregarde ça : http://c.developpez.com/faq/cpp/?p [...] ING_tokens
Marsh Posté le 17-10-2006 à 18:50:45
bon, j'up, j'ai un peu avancé je crois.. m'enfin :
Code :
|
Comment je peux récupérer la valeur de ligne dans ligness? ou il y a t'il possibilité de récupérer direct les ligne du fichier dans ligness (istringstream)?
merci.
Marsh Posté le 18-10-2006 à 09:38:27
Je derais que tu peux toujours faire :
Code :
|
Mais je ne comprend toujours pas tout à fait ton histoire, ça reste assez flou pour moi...
Marsh Posté le 18-10-2006 à 11:19:04
Citation : main.cc:101: erreur: no match for «operator<<» in «ligness << ligne» |
En fait, je cherche à :
- Lire un fichier.
- Ligne par ligne. '\n'
- Élément par élément. '.'
- Convertir ces éléments en int et stocker.
Pour convertir donc un fichier du genre
Citation : 1.2.3.2.1.23.4.5.5 |
En map[x][y]
Sachant que x sont les éléments spéarés par des points. Donc, map[3][1] est égal à 4.
Marsh Posté le 18-10-2006 à 13:30:43
Excuse-moi je n'avais pas fait attention que tu avais déclaré un istringstream et non un stringstream...
Par contre es-tu sûr de gérer correctement les dimensions du tableau map ? Ne risque-t-il pas d'y avoir de problème ?
Marsh Posté le 18-10-2006 à 14:20:51
vyrre ton tableau, utilise un vector de vector. et lis la doc de getline, arrête de faire n'imp avec. même remarque pour istringstream. sors toi les doigts, on fait pas de la cuisine
Marsh Posté le 18-10-2006 à 21:07:18
j'ai lu la doc de getline, mais bon.. et pourquoi je devrais utiliser un vector? je sais pas ce que c'est, je débute et je suppose qu'on n'est pas obligé d'avoir tout un tas de notion pour faire la base?
Code :
|
Citation : y : 0 |
Marsh Posté le 15-10-2006 à 20:39:06
Bonjour,
Je suis débutant en c++. Je cherche a lire un fichier sous la forme suivante :
1.2.3.4.5.6.7.8.9.10
10.8.7.6.5.4.3.2.1.0
Je veux le stocker dans une var map[x][y].
map[1][0] est égal à 2.
map[0][1] est égal à 1.
map[1][1] est égal à 0.
etc..
Donc, j'ai codé une petite fonction (et ça ma pris un temps fou) ReadMapFile() :
Le problème c'est que j'ai une segfault a la fin, parce que je getline dans la semoule.
y : 0
1.2.3.4.5.6.7.8.9.10
12345678910
y : 1
10.9.8.7.6.5.4.3.2.1
10987654321
y : 2
Erreur de segmentation
Donc, pourquoi alors que j'ai un !MapFile.eof() comme condition du while, et que je crois jurer qu'il n'y a pas cette ligne numéro 3 (y=0, y=1 mais pas plus) et pourtant, la condition est quand même validée?
Ça doit surement être très simple, mais je vois vraiment pas.
merci d'avance
crygor