Problème de code ou tout à fait normal ? [Résolu] - C - Programmation
Marsh Posté le 08-05-2012 à 15:27:55
Après avoir bien regardé, le printf n'est même pas dans dans la boucle dans le livre :
Code :
|
Du coup c'est encore pire, rien ne s'affiche. Vous ne remarquez rien de bizarre avec ce code ? Cela peut-il venir du compilateur ?
Marsh Posté le 08-05-2012 à 17:17:50
Tu es sur une fenêtre Windows ou Linux pour tester cela?
En Windows il faut faire Ctrl+Z sur une ligne vide pour envoyer un EOF et en linux, c'est probablement Ctrl+D
(En fait, dans une fenetre DOS, Ctrl+Z est compris comme une marque de fin de texte, le caractère et ce qui suit n'est pas pris en compte. Quand on fait Ctrl+Z (+ retour chariot bien sur) sur une ligne vide, cela envoie donc une chaine vide, qui est interprétée comme EOF [puisque logiquement, s'il restait qque chose, la chaîne ne serait pas vide mais contiendrait au moins un \n])
Une autre idée de traitement, pondue vite fait à partir de ton code (pas vérifié que ça marche dans tout les cas, c'est pour te donner une idée de comment on pourrait faire)
Code :
|
A+,
Marsh Posté le 07-05-2012 à 23:10:19
Problème réglé. Il suffit de mettre fin à la boucle pour que le printf s'affiche (changer EOF par '.' par exemple). Ce n'est pas expliqué dans le livre, et je trouve ça plutôt mal fichu. Je lis chaque ligne avec attention et ça m'aurait évité d'être bloqué.
EDIT: en fait ça fait partie d'un exercice de trouve comment tester ce programme. Je suis fier d'y être arrivé xD
Bonsoir à tous ! J'ai le livre "Le langage C Norme ANSI 2e édition" de K&R, version française.
Je débute dans le C, donc je ne sais pas si ce que j'ai sur mon écran est réellement ce que je devrais avoir.
Par exemple, à la fin du chapitre 1, on a ce code qui est censé compter les nombres de lignes, de caractères et de mots (ce n'est pas un exercice).
Avec ce code, est-ce normal que le printf s'affiche autant de fois qu'il y a de caractères ? Si j'écris une phrase, c'est vraiment le bordel dans la console.
Autre chose : est-ce normal qu'appuyer sur "ENTRER" compte comme un caractère ?
Pourquoi lorsque j'appuie sur un nombre la 1ère fois il me détecte un mot alors que les fois suivantes ça ne le fait pas ?
Voici une capture d'écran :
Je précise que je travail avec Visual Studio C++ Express 2010 sous Windows 7 64bits.
Je vous remercie d'avance pour votre aide !
Message édité par churos45 le 08-05-2012 à 16:16:22