Manipuler des caracteres un par un avec la fonction read...
ROW_PyRo
Messages postés3Date d'inscriptionjeudi 3 août 2006StatutMembreDernière intervention26 octobre 2009
-
26 oct. 2009 à 17:42
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
2 déc. 2009 à 14:19
Bonjour,
Je suis actuellement sur un projet, BSQ.
Il s'agit de trouver le plus grand carré possible sur
un plateau en évitant des obstacles.
Détails:
- Le plateau vous est transmis dans un fichier contenant des '.' et
des 'o' (en premier argument).
exemple:
(prompt)cat example_file
9
...........................
....o......................
............o..............
...........................
....o......................
...............o...........
...........................
......o..............o.....
..o.......o................
(prompt)
- Le but du programme est d'afficher les plateaux en remplissant de x
(en remplaçant des '.') le plus grand carré possible.
exemple:
- Le nombre en debut de fichier indique le nombre de lignes du plateau.
(prompt)./bsq example_file
.....xxxxxxx...............
....oxxxxxxx...............
.....xxxxxxxo..............
.....xxxxxxx...............
....oxxxxxxx...............
.....xxxxxxx...o...........
.....xxxxxxx...............
......o..............o.....
..o.......o................
Bref, j'ai deja bien avance dessus, puisque j'ai en partie repris le code que j'avais fais lorsque j'ai recoder la fonction cat.
Cependant je bloque sur un point, qui est de pouvoir manipuler les caracteres de mon fichier un par un (dans le cadre de mon projet c'est pour pouvoir reperer la position des 'o').
int my_cat(int fd)
{
int nb_read;
char buffer[BUF_SIZE];
nb_read = read(fd, buffer, BUF_SIZE);
while (nb_read != 0)
{
nb_read = read(fd, buffer, BUF_SIZE);
write(1, buffer, nb_read);
if ((buffer[BUF_SIZE]) == 'o')
{
my_putchar('9');
}
}
return (0);
}
C'est precisemment ici que je bloque :
if ((buffer[BUF_SIZE]) == 'o')
{
my_putchar('9');
}
J'ai essayer de multiple tests afin de voir comment je pourrais faire, mais en vain. Par exemple ici avec 'buffer[BUF_SIZE]'...
J'ai aussi regarde le 'man 2 write' et j'ai pas trouver de solutions
Donc j'aimerais savoir par quoi je dois remplacer mon BUFFER[BUF_SIZE] pour que ca puisse marcher ^^'
Voili voilo, si quelqu'un pouvait me donner un coup de pouce...
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 26 oct. 2009 à 19:00
Salut,
Je te rappelle qu'a ton entrée à {Epitech.} on a du te dire 2 choses :
1. La pédagogie de l'école veux que tu travailles uniquement à l'école (pour divers raisons), venir demander de l'aide sur un forum c'est comme bosser chez soi, ce n'est pas ce que l'on attend de toi.
2. Il y avais des personnes appelées Astek qui sont là pour t'aider. Ces Astek ont fait ces projets avant toi et les connaissent bien, ils sont parfaitement au courant des habitudes de l'école qui a des normes assez strictes, tant du point de vue de la programmation elle même que par la pédagogie ou le mode de fonctionnement général.
Bref, vas plutôt parler avec un Astek dans ton école, c'est ce qu'il y a de plus intelligent à faire. C'est comme ça qu'Epitech fonctionne, oui on te demande de faire beaucoup de recherches par toi même, mais quand tu as un problème tu dois demander d'abord aux personnes qui sont là pour t'aider. Ne le prend pas mal, ce n'est pas juste pour t'envoyer chier que je te dit ça mais pour te faire comprendre que tu es dans uen école spéciale et qu'il est préférable pour toi de "jouer le jeu".
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 26 oct. 2009 à 20:19
Je ne sais pas dans quelle ville tu es mais chez nous les Asteks font toujours des permanences afin de toujours être présent et c'est le cas normal de toutes les autres villes. Tu as aussi netsoul pour t'aider a les trouver, c'est utile parfois. Bref, j'ai un peu de mal a croire qu'il n'y ai aucun Astek dispo mais s'il y a vraiment un manquement de leur tu devrais en parler rapidement à ton DPR.
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 13 nov. 2009 à 13:42
Bonjour, Bonjour,
Ici un Astek qui parle :
La concentration en Astek de Paris est 5 fois plus élevée qu'en province.
Seule Rennes pourrait encore avoir des choses à dire, chez eux ils n'ont plus d'Astek depuis la fin de la Piscine.
Et pour cause : L'Astek en question est retourné devinnes où ... SUR PARIS. ( Ca devrait t'enjouer !!! )
Donc AUCUNE excuse.
Oui je sais ... Remonter un post comme ca ne ce fait pas ... Et alors, J'assume !
lural
Messages postés131Date d'inscriptionsamedi 6 janvier 2007StatutMembreDernière intervention 4 janvier 20112 2 déc. 2009 à 12:48
Si si, on voit l'erreur, mais apparemment on a pas le droit de te répondre :P
Sinon, hors problèmes d'aztèques (:P), si tu es à Epitech c'est que tu dois avoir un cerveau non ?
Parce que bon, perso moi quand il y a un truc qui réagit bizarrement, j'essaye de l'afficher du genre
Attention, c'est une méthode pour utiliser son cerveau, dans cet exemple, c'est STUPIDE !
Bien sur tu auras vu dans ton code que tu sors de ton tableau de char et que tu testes uniquement en dehors de ton tableau ...
Sur ce, bien le bonjour à tous ces Astek dont je ne connaissait pas l'existence avant ce matin.