Problème Progamme pour affichage

Problème Progamme pour affichage - C - Programmation

Marsh Posté le 11-11-2006 à 00:40:53    

Bonjour à tous, cela fait un bout de temps que je cherche une solution sur le forum dans des sujets déjà traités, mais je n'ai rien trouvé.
 
J'ai un souci tout bête, mais je ne sais pas le régler : Je pose un entier a égal à 1 au début. Tant que a<5, je demande une lettre et un chiffre. Je sais c'est bête mais en fait c'est la simplification de ce que j'ai dans un autre programme car après j'utilise ces données, et j'en redemande d'autres pour les traiter à nouveau.
 
J'écris donc en C (normal, on est sur un forum concernant le C), j'utilise Dev-C++ 4.9.9.2.
 
Voici mon code :  

Code :
  1. #include <stdio.h>
  2. main ()
  3. int a,chiffre;
  4.    char lettre1;
  5.    
  6.    a=1;
  7.    
  8.    while (a<5)
  9.    { 
  10.      printf("ligne\n" );
  11.      fflush(stdout);
  12.      scanf("%c*c",&lettre1);
  13.      printf("%c\n",lettre1); // pour vérification
  14.      printf("colonne\n" );
  15.      fflush(stdout);
  16.      scanf("%d",&chiffre);
  17.      printf("%d\n\n",chiffre); // pour vérification
  18.      a++;
  19.   }
  20.  
  21. system("PAUSE" );
  22. }


 
Pourriez-vous me dire où se trouve mon erreur ? Pour "fflush(stdout);", je l'ai trouvé sur le forum, ça a corrigé un peu le problème mais pas entièrement.
 
Merci à vous.

Reply

Marsh Posté le 11-11-2006 à 00:40:53   

Reply

Marsh Posté le 11-11-2006 à 01:27:39    

L'erreur, c'est que tu n'as pas pas dit ton problème.

Reply

Marsh Posté le 11-11-2006 à 02:11:28    

mystix5987 a écrit :

Code :
  1. scanf("%c*c",&lettre1);
  2.      scanf("%d",&chiffre);



scanf(), çaÿ le Mal...
 
http://mapage.noos.fr/emdel/notes.htm#saisie
http://mapage.noos.fr/emdel/notes.htm#fichiers


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 11-11-2006 à 10:47:49    

C'est ce que j'avais cru comprendre dans les autres topics, mais comme ils l'ont dit, c'est ce qu'on nous apprend, et perso, c'est vrai que le reste j'ai un peu du mal quand j'ai lu ça sur le forum..

Reply

Marsh Posté le 11-11-2006 à 10:50:46    

mystix5987 a écrit :

C'est ce que j'avais cru comprendre dans les autres topics, mais comme ils l'ont dit, c'est ce qu'on nous apprend, et perso, c'est vrai que le reste j'ai un peu du mal quand j'ai lu ça sur le forum..


Ce qui donne en bon français ?
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 11-11-2006 à 11:03:51    

désolé, c'est le matin, je me suis levée et ruée sur le pc pour résoudre ce souci de programmation.
 
Utiliser scanf, c'est ce qu'on nous apprend en cours (j'ai revu ça aussi plusieurs fois dans des topics, et c'étaient des reproches)
 
Pour getc ou autre, je ne sais pas les utiliser car je n'ai jamais appris, et lire les infos que j'ai trouvé sur le forum les concernant n'ont pas amélioré ma compréhension.

Reply

Marsh Posté le 11-11-2006 à 11:27:45    

Citation :

scanf(), çaÿ le Mal...


Signifie ici que tu l'utilises un peu à la barbare dans ton code.
Le "%c*c"...  [:psychokwak]

Reply

Marsh Posté le 11-11-2006 à 11:30:22    

ben oui, c'est ce qu'on m'a dit. Le truc c'est qu'il m'affichait correctement la 1ère boucle, puis la 2ème plantait.
 
Sur un autre forum, on m'a donné autre chose à la place de scanf, mais le souci, c'est que là, la chose est simplifiée, car je demande dans mon autre programme d'entrer par exemple "B4". Et j'aimerai qu'il me traite séparement B et 4 (histoire de plateau et de pions).

Reply

Marsh Posté le 11-11-2006 à 11:38:39    

mystix5987 a écrit :

car je demande dans mon autre programme d'entrer par exemple "B4". Et j'aimerai qu'il me traite séparement B et 4 (histoire de plateau et de pions).


Avec fgets(), tu lis la ligne tranquillement, et après, tu traites ligne[0] et ligne[1]. Qui a dit que le C était compliqué ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 11-11-2006 à 11:39:49    

Oh, je crois que c'est toi qui me répond aussi sur un autre forum !

Reply

Marsh Posté le 11-11-2006 à 11:39:49   

Reply

Marsh Posté le 11-11-2006 à 11:42:07    

fgets() : c'est pour les fichiers !
 
Pour traiter 'B' et '4' séparément, fais un tableau de char de 3 cases : char tab[3];
 
Après pour capter 2 caractères, tu fais : gets(tab);
 
Puis pour prendre le 1er caractère : tab[0], pour le 2è : tab[1]. Le tab[2] étant là pour le '\0'.
 
Puis bon après, sachant que tab[1] sera un chiffre, tu feras un atoi pour le récupérer en integer.

Reply

Marsh Posté le 11-11-2006 à 12:01:10    

Siluro a écrit :

fgets() : c'est pour les fichiers !


Tais toi.

Citation :

Après pour capter 2 caractères, tu fais : gets(tab);


Mais tais toi donc, c'est insupportable.
http://62.233.33.215/0/26/80/04/je-vous-demande-de-vous-arreter.jpg
Reviens parler ici quand tu sauras programmer en C.
 
En attendant, écoute et apprend.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 11-11-2006 à 12:21:22    

Okok mea culpa :(
J'ai dit des choses qui font un code pas propre. Je m'en excuse.
Je m'en vais lire ton site :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed