Probleme ms-dos avec devc++

Signaler
Messages postés
3
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
30 mars 2003
-
Messages postés
3
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
30 mars 2003
-
j'ai testé le code suivant, mais l'exécution (afficher le nombre de caractères) ne s'affiche pas, je pense que c'est lié à dos mais j'en sais rien du tout...

#include <stdio.h>
main()
{
long nc;
nc=0;
while (getchar()!=EOF)
++nc;
printf("%ld\n",nc);
system ("pause");
}

Quen pensez vous???
Merci d'avance
signé: un deb de chez deb!!!

4 réponses

Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
bonjour

le test de EOF devrait être réservé aux fins de fichiers
il est assez délicat de le faire avec DOS
il faut faire deux fois CTRL+Z et Entree

teste plûtôt une autre touche et ça ira mieux :
#include <stdio.h>
int main()
{
long nc;
nc=0;
while (getchar()!='x')
++nc;
printf("%ld\n",nc);
return 0;
}
Messages postés
3
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
30 mars 2003

>bonjour,

Merci de m'aider,

j'ai donc essayé ce code, mais rien de mieux ne se passe. une fois les lettres écrites, j'appuie sur entrée , ça me marque "appuyez sur une touche pour continuer", j'appuie et la fenêtre dos disparait. toujours pas de chiffres à l'horizon! Même lorsque je fais mon ancien code puis deux fois CTRL+Z, ya rien qui marche. As tu essayé de ton côté?

Merci encore
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
bonjour,

je me suis mal exprimé, je crois
1) teste le code qui teste l'entrée du caractère 'x'
bien sûr, il faut appuyer sur entrée pour que ton code le prenne en compte
écrit donc :
A <entree>
x <entree>
... et le résultat doit être 1 (car on n'a tapé qu'un caractère 'A')
2) teste ton code (avec EOF) et tape
ABC<entree>
CTRL+Z <entree>
CTRL+Z <entree>
... et le resultat doit être 3 (pour 'A' 'B' 'C')

à mon code, tu peux ajouter ton system("pause"); si ton environnement de développement ferme la fenêtre DOS
Ou alors tu ouvre une fenêtre DOS et tu lance ton prog dedans
J'ai testé... ça doit fonctionner
Il n'y a rien de compliqué la dedans
Messages postés
3
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
30 mars 2003

ça marche, merci pour ta patience!