[c/c++] lire des lignes en boucle jusqu'a EOF
Fermé
ElianeR
Messages postés
2
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
14 février 2007
-
14 févr. 2007 à 22:43
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 - 16 févr. 2007 à 09:41
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 - 16 févr. 2007 à 09:41
2 réponses
ElianeR
Messages postés
2
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
14 février 2007
14 févr. 2007 à 23:57
14 févr. 2007 à 23:57
Oups dsl jai fait erreur. On ne doit pas éliminer les espaces.. c-a-d que si j'entre a l'écran:
aaa bbb ccc<enter>
ddd eee fff ggg<enter>
hhh ^D
ma chaine devra contenir:
[aaa bbb ccc ddd eee fff ggg hhh ]
(avec un espace entre le dernier char* et le prochain char* même s'il ny en avais pas en d'entré.)
aaa bbb ccc<enter>
ddd eee fff ggg<enter>
hhh ^D
ma chaine devra contenir:
[aaa bbb ccc ddd eee fff ggg hhh ]
(avec un espace entre le dernier char* et le prochain char* même s'il ny en avais pas en d'entré.)
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 329
16 févr. 2007 à 09:41
16 févr. 2007 à 09:41
Salut.
Tu peux essayer un truc du genre
while (chainetemp[strlen(chainetemp)-2/*2ou 1 à tester*/]!=EOF)
{...}
En fait, tu li ta ligne et tu regarde si le dernier caractère vaut EOF.
Tu peux essayer un truc du genre
while (chainetemp[strlen(chainetemp)-2/*2ou 1 à tester*/]!=EOF)
{...}
En fait, tu li ta ligne et tu regarde si le dernier caractère vaut EOF.
16 févr. 2007 à 00:44
J'ai pas compris ce que tu veux faire. C'est lire à partir de stdin une chaîne de caractères que tu concaténerais dans une chaîne existante et puis tu affiches le résultat après avoir lu un certain nombre de lignes. Tout d'abord, il ne s'agit pas du tout d'utiliser EOF ou feof() puisque EOF signale une fin de fichier et feof() retourne vrai quand il lit EOF à la fin d'un fichier. Ce n'est pas ce que tu devrais utiliser pour stdin. Tu devrais plutôt regarder du côté des descripteurs de fichiers et utiliser la fonction read pour lire ce qui passe dans le tube de stdin.
Voici un exemple:
Pour sortir de cette boucle infernale, tu peux lire une lettre telle que 'q' et afficher ce que tu as lu et sortir du prog.
J'espère que ça t'aidera
Cordialement,
Johnny
P.S: Dsl pour les fonctions incomplètes, mais je ne programme que sous linux et étant sous windows, je n'ai pas de manuel.