Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/09/2010, à 17:58

Kiwiii

[RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

Bonjour a tous, c'est là rentrée est passée et cette année je fais de la programmation ( en C pour l'instant ).
À l'IUT on utilise code blocks pour le C qui marche très très bien. Seulement sur mon pc il bug a mort, plantage, affichage dégueulasse etc ...
Bon je me suis tourné vers Eclipse, je sais c'est beaucoup plus gros et c'est orienté objet, mais j'ai juste installer la version qui ne comprend que le CDT.
Je retape le petit ( tout petit ) programme console qu'on a vue en cours, et j'ai quelques erreurs que je n'arrive pas a corriger, je sais pas si c'est Eclipse que j'ai mal installé ou configuré, je pense surtout que c'est moi qui n'arrive pas à me relire.

#include <stdio.h>
#include <stdlib.h>

int main()
{
/*Environnement*/

	char CAR;
	int I;
	int TABCAR [26];
	            
/*Algorithme*/
	printf("Frappez une suite de caracteres et finissez la phrase par un point : \n");
	for (I=O;I<=25;I++) {TABCAR[i]=0;}
	do
	{
		CAR=getche();
		if (CAR>='A' && CAR<='Z')
		{                                                        	
			I=CAR-'A';TABCAR[i]=TABCAR[i]++; 
		}                                               // Erreur 1
	}while (CAR!='.');                                 // Erreur 2 
	printf("\n\n Nombre total de caracteres : \n");      
	for (CAR='A';CAR<='Z';CAR++)
	{                                                    // Erreur 3
	I=CAR-'A';                                                        // Erreur 4
	printf("Nombre total de '%c'=%d \n",CAR,TABCAR[i]);               // Erreur 5
	}
}

Erreur 1 : Multiple markers at this line
         - implicit declaration of function ‘printf’
         - incompatible implicit declaration of built-in function
          ‘printf’
         - expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before
          ‘printf’
         - expected ‘)’ before ‘n’
         - stray ‘\’ in program

Erreur 2 : Multiple markers at this line
         - ‘TABCAR’ undeclared (first use in this
          function)
         - expected expression before ‘)’ token
         - ‘O’ undeclared (first use in this function)

Erreur 3 : implicit declaration of function ‘getche’

Erreur 4 : expected ‘;’ before ‘if’

Erreur 5 : Syntax error

Bon peut être que les solutions vont vous semblez évidentes mais moi je débute hein, c'est mon premier programme alors ne soyez pas trop taquin !
En plus de ça apres 2 heures de galère dans le vide pour codeblocks j'ai l'impression d'avoir perdu mon samedi hmm


'fin bref, merci d'avance a ceux qui vont me répondre !

EDIT : Erreur sur l'assignation de ligne pour les Erreur 1 et 2 je viens de la corriger

Dernière modification par Kiwiii (Le 30/09/2010, à 17:48)


Il est déjà 9 heures, là ?

Amd fx8120 / Radeon 4870 / 8go ram / Fedora 17 Gnome Shell

Hors ligne

#2 Le 18/09/2010, à 18:39

ibrahim54

Re : [RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

Bonsoir, je débute également en programmation en C (via le site du zéro)

Je pense que pour l'erreur 5 il sagit d'un ou deux espace manquant

testez pour voir enremplacant :

printf("Nombre total de '%c'=%d \n",CAR,TABCAR[i]);

par :

printf("Nombre total de '%f'=%d\n", CAR, TABCAR[i]);

Enfin rien n'est sur hein ? je suis aussi débutant smile


mon poste info : Dual-screen 27+17" ; i3-2100, 16Go de ram (Windows 10)
mon poste nomade : Lenovo ThinkPad X260 (Ubuntu 22.04)
Musée :  Lenovo ThinkPad X200 (Ubuntu 21.10)

Hors ligne

#3 Le 18/09/2010, à 18:50

Kiwiii

Re : [RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

Merci beaucoup de t'être donner la peine de lire mon post pas vraiment intéressant, mais ça marche pas hmm On va y arriver !


Il est déjà 9 heures, là ?

Amd fx8120 / Radeon 4870 / 8go ram / Fedora 17 Gnome Shell

Hors ligne

#4 Le 19/09/2010, à 01:35

Le Farfadet Spatial

Re : [RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

Salut à tous !

Kiwiii a écrit :

mon post pas vraiment intéressant

Ton message n'est pas inintéressant : tu as un problème, ce forum est un forum d'entraide, tu es donc venu chercher de l'aide ici. C'est tout à fait normal.

Kiwiii a écrit :

À l'IUT on utilise code blocks pour le C qui marche très très bien. Seulement sur mon pc il bug a mort, plantage, affichage dégueulasse etc ...
Bon je me suis tourné vers Eclipse, je sais c'est beaucoup plus gros et c'est orienté objet, mais j'ai juste installer la version qui ne comprend que le CDT.

De toute façon, pour diverses raisons (je ne sais pas si tu veux que je les donne), je déconseille Code:Blocks.

ibrahim54 a écrit :

Je pense que pour l'erreur 5 il sagit d'un ou deux espace manquant

En ajoutant les espaces que tu suggères, on améliore la lisibilité pour un être humain (ce qui est une bonne chose), mais cela ne change rien pour le compilateur.

   J'ai tenté de compiler le code chez moi. J'ai fait un peu de nettoyage concernant la présentation, ce qui donne ceci – ce code ne fonctionne toujours pas, c'est normal, c'est simplement pour y voir plus clair :

#include <stdio.h>
#include <stdlib.h>

int main() {

  /*Environnement*/

  char CAR;
  int I;
  int TABCAR [26];
                
  /*Algorithme*/
  printf("Frappez une suite de caracteres et finissez la phrase par un point : \n");
  for (I=O; I<=25; I++) TABCAR[i]=0;

  do {
    CAR=getche();
    if (CAR >= 'A' && CAR <= 'Z') {
      I = CAR-'A';
      TABCAR[i] = TABCAR[i]++; 
    }
  } while (CAR!='.');

  printf("\n\n Nombre total de caracteres : \n");      
  for (CAR='A';CAR<='Z';CAR++) {
    I = CAR-'A';
    printf("Nombre total de '%c'=%d \n", CAR, TABCAR[i]);
  }
}

Au moment de la compilation, voilà ce qu'on obtient :

$ gcc -ansi -pedantic -W -Wall kiwill.c -o kiwill
kiwill.c: In function ‘main’:
kiwill.c:14: error: ‘O’ undeclared (first use in this function)
kiwill.c:14: error: (Each undeclared identifier is reported only once
kiwill.c:14: error: for each function it appears in.)
kiwill.c:14: error: ‘i’ undeclared (first use in this function)
kiwill.c:17: warning: implicit declaration of function ‘getche’

Bien entendu. La ligne 14 est la suivante :

for (I=O; I<=25; I++) TABCAR[i]=0;

Tu as mis un « O » majuscule à la place de « 0 » et un « i » minuscule au lieu d'un « I » majuscule.

   La ligne 17 est la suivante :

CAR=getche();

Il n'y a pas de fonction « getche ». Je pense que tu voulais taper « getch ». Le problème, sauf si je m'emmêle les pinceaux – après tout, c'est possible –, c'est que « getch » est une fonction contenue dans « <conio> », qui n'est pas standard. Que penses-tu de « getchar » ?

   Une fois ces modifications réalisées, voici le message obtenu :

$ gcc -ansi -pedantic -W -Wall kiwill.c -o kiwill
kiwill.c: In function ‘main’:
kiwill.c:20: error: ‘i’ undeclared (first use in this function)
kiwill.c:20: error: (Each undeclared identifier is reported only once
kiwill.c:20: error: for each function it appears in.)

La ligne 20 est la suivante :

TABCAR[i] = TABCAR[i]++;

Encore une erreur avec les majuscules.

   Il y a encore une erreur :

$ gcc -ansi -pedantic -W -Wall kiwill.c -o kiwill
kiwill.c: In function ‘main’:
kiwill.c:27: error: ‘i’ undeclared (first use in this function)
kiwill.c:27: error: (Each undeclared identifier is reported only once
kiwill.c:27: error: for each function it appears in.)

La ligne 27 :

printf("Nombre total de '%c'=%d \n", CAR, TABCAR[i]);

Encore une fois, une erreur avec les majuscules.

   Ce que tu dois retenir, c'est qu'en C, il n'est pas indifférent d'utiliser des majuscules ou des minuscules : « I » n'est pas la même chose que « i », par exemple. D'autre part, en général, les noms tout en majuscules sont réservés aux constantes ; ce n'est pas une règle, le code fonctionnera avec des majuscules, mais c'est une habitude répandue.

   Une dernière chose, avec le code corrigé, j'obtiens cet avertissement :

$ gcc -ansi -pedantic -W -Wall kiwill.c -o kiwill
kiwill.c: In function ‘main’:
kiwill.c:29: warning: control reaches end of non-void function

Ce qui est normal, car tu as déclaré que la fonction « main » doit retourner un entier (« int main () »), mais tu ne retournes rien. Il est donc préférable d'ajouter « return 0; ». Le code suivant compile chez moi :

#include <stdio.h>
#include <stdlib.h>

int main() {

  /*Environnement*/

  char CAR;
  int I;
  int TABCAR [26];
                
  /*Algorithme*/
  printf("Frappez une suite de caracteres et finissez la phrase par un point : \n");
  for (I=0; I<=25; I++) TABCAR[i]=0;

  do {
    CAR=getchar();
    if (CAR >= 'A' && CAR <= 'Z') {
      I = CAR-'A';
      TABCAR[i] = TABCAR[i]++; 
    }
  } while (CAR!='.');

  printf("\n\n Nombre total de caracteres : \n");      
  for (CAR='A';CAR<='Z';CAR++) {
    I = CAR-'A';
    printf("Nombre total de '%c'=%d \n", CAR, TABCAR[i]);
  }

  return 0;
}

Correspond-il à ce que tu veux faire ?

   À bientôt.

   Le Farfadet Spatial

Dernière modification par Le Farfadet Spatial (Le 19/09/2010, à 17:16)

Hors ligne

#5 Le 19/09/2010, à 11:13

Kiwiii

Re : [RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

Merci beaucoup, j'avais finalement trouvés pour les I majuscule mais le O j'aurais mis du temps, merci beaucoup, j'essai ça ce soir ou demain ! Merci beaucoup de ton aide !


Il est déjà 9 heures, là ?

Amd fx8120 / Radeon 4870 / 8go ram / Fedora 17 Gnome Shell

Hors ligne

#6 Le 19/09/2010, à 17:15

Le Farfadet Spatial

Re : [RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

Salut à tous !

   Si cela résout ton problème, pense à faire apparaître la balise [Résolu] dans le titre de ton message.

   À bientôt.

   Le Farfadet Spatial

Hors ligne

#7 Le 19/09/2010, à 18:27

Kiwiii

Re : [RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

Ouais mais il est pas encore résolu ! il me marque une erreur sur CAR=getche() et sur le dernier printf, c'est deux erreur de syntaxe et l'avant dernière '}' il me dit : expected ‘;’ before ‘}’ token

Bref on est prêt de la fin, en tout cas merci de m'aider !


Il est déjà 9 heures, là ?

Amd fx8120 / Radeon 4870 / 8go ram / Fedora 17 Gnome Shell

Hors ligne

#8 Le 19/09/2010, à 20:51

Le Farfadet Spatial

Re : [RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

Salut à tous !

Kiwiii a écrit :

Ouais mais il est pas encore résolu !

Le code que je t'ai donné compile, donc je pense que tu devrais pouvoir trouver la solution.

Kiwiii a écrit :

il me marque une erreur sur CAR=getche()

Relis ma première intervention :

Le Farfadet Spatial a écrit :

Il n'y a pas de fonction « getche ». Je pense que tu voulais taper « getch ». Le problème, sauf si je m'emmêle les pinceaux – après tout, c'est possible –, c'est que « getch » est une fonction contenue dans « <conio> », qui n'est pas standard. Que penses-tu de « getchar » ?

Kiwiii a écrit :

et sur le dernier printf, c'est deux erreur de syntaxe et l'avant dernière '}' il me dit : expected ‘;’ before ‘}’ token

Dans la mesure où tu sais quelle est l'erreur, tu devrais être capable de la corriger. Je te laisse donc un peu chercher (ce n'est pas compliqué) !

   Une fois que ton code fonctionne, n'hésite pas à le poster ici.

   À bientôt.

   Le Farfadet Spatial

Hors ligne

#9 Le 22/09/2010, à 17:17

Kiwiii

Re : [RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

Ok merci beaucoup, désolé pour le temps de réponse, j'avais pas accès à internet !

Le code marche très bien, par contre tu peux m'expliquer pour le getchar ? En cours j'ai vu gecthe et ça marchait avec getche hmm

Dernière modification par Kiwiii (Le 22/09/2010, à 17:22)


Il est déjà 9 heures, là ?

Amd fx8120 / Radeon 4870 / 8go ram / Fedora 17 Gnome Shell

Hors ligne

#10 Le 22/09/2010, à 19:41

Le Farfadet Spatial

Re : [RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

Salut à tous !

Kiwiii a écrit :

Ok merci beaucoup, désolé pour le temps de réponse, j'avais pas accès à internet !

Le code marche très bien, par contre tu peux m'expliquer pour le getchar ? En cours j'ai vu gecthe et ça marchait avec getche hmm

C'est très simple : « getche » ne fait pas parti de la bibliothèque standard. Il s'agit d'une bibliothèque Microsoft, qui n'est pas portable. Je te déconseille donc de l'utiliser, car elle te rend dépendant d'un système – peu importe qu'il soit libre ou non, il est toujours préférable de ne pas dépendre d'un système particulier, ni d'un quelconque compilateur.

   Je te conseille ce livre pour apprendre le C standard :

      Méthodologie de la programmation en C
      BRAQUELAIRE
      Dunod

   En complément (quasiment indispensable à mon sens) :

      Maîtrise des algorithmes en C
      Kyle LOUDON
      O'Reilly

   À bientôt.

   Le Farfadet Spatial

Hors ligne

#11 Le 28/09/2010, à 10:01

Nktug

Re : [RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

Voila ce qu'on nous apprend à l'école :
Utiliser Codeblock sur Windobe pour faire de la prog. Histoire de bien laisser passer des erreurs.

Un conseil pour toi "Kiwiii", développe sur Linux avec un bon éditeur de texte et un bon Makefile ou SCONS, tu va bien galérer (dardar de chez dardar) mais tu apprendras bien mieux.

N'oublies pas les bouquins ça sert.


VENEZ PARTICIPER A UN PROJET AMATEUR MULTIPLATEFORME
http://the-cyber-cube.net

TCC - GameDev : Nktug - Lead Programmer

Hors ligne

#12 Le 30/09/2010, à 17:45

Kiwiii

Re : [RESOLU] Debutant en programmation C + Eclipse = quelques problèmes

D'accord, merci pour tout ! A bientot ++


Il est déjà 9 heures, là ?

Amd fx8120 / Radeon 4870 / 8go ram / Fedora 17 Gnome Shell

Hors ligne