C lecture fichier ligne par ligne
letrancheur
Messages postés
210
Date d'inscription
Statut
Membre
Dernière intervention
-
letrancheur Messages postés 210 Date d'inscription Statut Membre Dernière intervention -
letrancheur Messages postés 210 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila cela fait quelques moi que je programmes et je suis occupé d'essayer de faire un petit RPG et je cherche un moyen d'afficher la map. C'est à dire, la map est d'une dimension de 100*100 et j'en affiche sur l'écran du coup qu'une partie.
Je cherche à faire la lecture de la map +affichage jusqu'au caractère étant égale à la taille de l'écran puis passer à la ligne suivant dans le tableau + le fichier et afficher à nouveau les caractères ...
Voici ce que j'ai produit jusqu'à maitenant.
Pour le moment cela s'affiche bien question tableau mais question caractères du texte il continue la lecture de la ligne à la colonne suivante
Quelqu'une aurait-il une solution?
Merci d'avance
Voila cela fait quelques moi que je programmes et je suis occupé d'essayer de faire un petit RPG et je cherche un moyen d'afficher la map. C'est à dire, la map est d'une dimension de 100*100 et j'en affiche sur l'écran du coup qu'une partie.
Je cherche à faire la lecture de la map +affichage jusqu'au caractère étant égale à la taille de l'écran puis passer à la ligne suivant dans le tableau + le fichier et afficher à nouveau les caractères ...
Voici ce que j'ai produit jusqu'à maitenant.
if (map!=NULL) { do{ do{ carLu = fgetc(map); tabville[ligne][colonne]=atoi(&carLu); sprintf(TblMsg,"\x1b[1m%c",carLu); AfficherXY(TblMsg,posX+3,posY+4); posX+=2; }while (posX/2<wWidth/2-1-11); }while (posY/2<wHeight/2-6); fclose(map); }
Pour le moment cela s'affiche bien question tableau mais question caractères du texte il continue la lecture de la ligne à la colonne suivante
Quelqu'une aurait-il une solution?
Merci d'avance
A voir également:
- C lecture fichier ligne par ligne
- Partager photos en ligne - Guide
- Fichier bin - Guide
- Mètre en ligne - Guide
- Fichier epub - Guide
- Aller à la ligne excel - Guide
1 réponse
Bonjour,
tabville[ligne][colonne]=atoi(&carLu);
Ce n'est pas bon ça. atoi() prend une chaîne de caractère De plus, cette fonction est obsolète. Si tu veux convertir carLu en entier, il suffit de faire carLu-'0'.
Pour passer à la ligne suivante, il suffit de lire la ligne jusqu'au '\n'.
Pourquoi ne pas utiliser fgets() pour lire toute la ligne (si tu connais la longueur maximale ?), et tu ne récupères que la partie qui t'intéresse (via strncpy).
Cdlt,
tabville[ligne][colonne]=atoi(&carLu);
Ce n'est pas bon ça. atoi() prend une chaîne de caractère De plus, cette fonction est obsolète. Si tu veux convertir carLu en entier, il suffit de faire carLu-'0'.
Pour passer à la ligne suivante, il suffit de lire la ligne jusqu'au '\n'.
Pourquoi ne pas utiliser fgets() pour lire toute la ligne (si tu connais la longueur maximale ?), et tu ne récupères que la partie qui t'intéresse (via strncpy).
Cdlt,
Car je début :p. Comment me conseille tu alors de faire?
justen un alors?
Pour passer à la ligne suivant j'ai un espace du coup je pensais faire
Et au niveau du fgetc() c'est sous les conseilles de mon prof d'info que j'avais mis cela.
Si tu es sûr que ce sont des chiffres (donc sur 1 position), tu peux faire :
tabville[ligne][colonne]=carLu-'0';
Si c'est un nombre supérieur à 10 que tu veux récupérer, ça ne sera pas la bonne méthode. Mais là, on a besoin de précision sur le codage des informations dans le fichier.
D'où sort ton espace ? Nous avons vraiment de connaître précisément la structure du fichier.
Si par exemple, ton fichier contient 100 caractères sur une ligne et 100 lignes.
Tu peux faire une boucle for et mettre dedans :
Maintenant, d'autres suggestions pour ton programme.
Pourquoi ne pas stocker toute la MAP dans un tableau 100x100 ? Ainsi, tu n'as plus qu'à afficher une partie du tableau à l'écran.
Je te conseille de faire une fonction initialisation() qui se charge de remplir le tableau et une fonction affichage qui s'occupe de l'affichage. Ça sera plus propre et plus facile à maintenir.
Je vais essayer ton système de buffer.
Et concernant la suggestion n'est pas mal non plus mais je ne sais pas comment je pourrais réaliser cela. :s