Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec xcode pour language C

Sujet résolu
    17 septembre 2023 à 0:58:58

    Bonjour j'ai eu un macbook pro 14 pouces et je suis sour la dernière version macos Ventura. Je veux commencer la programmation et j'ai installer xcode je suis un cour de language c, sur openclassroom mais je bloque sur le début sur le chapitre de déclaration de variable.

    Comme le dis sur openclasroom pour déclarer la variable il faut faire int nombredevies; ce que je fais et rien s'affiche ce qui est normal puis sur openclassroom il dit que faut que je déclare la variable au debut de la fonction donc je dois commencer par la fonction main soit main () ou int main(int argc, char *argv[])  déjà je bloque sur ça quand je met main () il me met un message d'erreur qui dit. : Excepted function body after function declarator et quand j'écris int main(int argc, char *argv[]) il me dit redefinition of 'main'. 

    Sachant que au tout debut du projet il y'a déjà un programme remplit avec une fonction de manière standard sur xcode je pense. Et en plus il me renvoie pas le 0;

    • Partager sur Facebook
    • Partager sur Twitter
      17 septembre 2023 à 11:17:51

      Bonjour,

      En gros ça donnerait ça:

      #include <stdio.h>
      
      int main(void)
      {
      	int toto;
      
      	printf("hello\n");
      
      	return(0);
      }



      • Partager sur Facebook
      • Partager sur Twitter
        18 septembre 2023 à 11:30:22

        Au lieu de décrire ton code, poste le à l'aide du bouton code <\> du forum. On verra beaucoup mieux ce qui ne va pas.
        • Partager sur Facebook
        • Partager sur Twitter
        ...
          18 septembre 2023 à 17:01:36

          J'ai fais comme rouloude m'a dis j'ai pas remit de main j'ai donc continuer le cours et là je suis b loquer pour les constante j'ai un autre message d'erreur qui s'affiche le message d'erreur dit redefinition of 'Nombredevies'  with a different types: 'const int vs int'  et quand je demande d'afficher la variable il me remet un message d'erreur qui dit conflicting types for 'printf' rouloude peut m'aider encore stp ? voici le code :

          #include <stdio.h>
          
          int main(int argc, const char * argv[]) {
              // insert code here...
              printf("Hello, World!\n");
              return 0;
          }
          
          int Nombredevies;
          unsigned char losseni;
          long coupledecon;
          
          int Nombredevies;
          Nombredevies = 5;
          Nombredfevies = 67;
          int nombredevies = 5;
          const int Nombredevies = 5;
          
          printf("%d");
          



          -
          Edité par LosseniKaramoko3 18 septembre 2023 à 19:33:05

          • Partager sur Facebook
          • Partager sur Twitter
            18 septembre 2023 à 17:12:38

            Utilises le bouton code </> du forum pour poster ton code ! (tu peux modifier ton post, lien modifier en haut à droite du post).
            Tu ne peux pas avoir deux fonctions main. C'est soi l'une soi l'autre !

            Edit : Je ne répond pas aux questions générales par MP.
            Le bouton code il est ici :

            -
            Edité par rouIoude 18 septembre 2023 à 19:10:54

            • Partager sur Facebook
            • Partager sur Twitter
            ...
              18 septembre 2023 à 19:47:36

              LosseniKaramoko3 a écrit:

              J'ai fais comme rouloude m'a dis j'ai pas remit de main j'ai donc continuer le cours et là je suis b loquer pour les constante j'ai un autre message d'erreur qui s'affiche le message d'erreur dit redefinition of 'Nombredevies'  with a different types: 'const int vs int'  et quand je demande d'afficher la variable il me remet un message d'erreur qui dit conflicting types for 'printf' rouloude peut m'aider encore stp ? voici le code :

              #include <stdio.h>
              
              int main(int argc, const char * argv[]) {
                  // insert code here...
                  printf("Hello, World!\n");
                  return 0;
              }
              
              int Nombredevies;
              unsigned char losseni;
              long coupledecon;
              
              int Nombredevies;
              Nombredevies = 5;
              Nombredfevies = 67;
              int nombredevies = 5;
              const int Nombredevies = 5;
              
              printf("%d");
              



              -
              Edité par LosseniKaramoko3 il y a 11 minutes


              Les lignes 14 15 et 19 sont des instructions, et ne doivent donc apparaître qu'à l'intérieur d'une fonction.

              (celles de 9 à 13 et la 17 sont des définitions de variables globales).

              La variable Nombredevies est définie trois fois, lignes 9, 13 et 17.  Tu ne trouves pas que tu exagères ? 

              Tu t'aiderait toi-même en essayant d'écrire du code qui a un sens, une intention claire et raisonnable

              -
              Edité par michelbillaud 18 septembre 2023 à 20:01:20

              • Partager sur Facebook
              • Partager sur Twitter
                18 septembre 2023 à 20:24:37

                Donc si je comprend bien il faut que les ligne d'instruction je les mette à l'intérieur de la fonction ligne 3 à 5? Mais je comprend pas à chaques fois que je vais faire des instruction je vais devoir retourner à la ligne 3 à 5 et les y intégrer dedans ou je peux recrée une fonction main ? Sachant que plus haut quelqu'un m'a dit que on ne pouvait que créé qu'une seule fonction main par programme et non plusieurs ? Et aussi c'était un test j'essayais d'apprendre en écrivant plusieurs variable etc.. c'est pour ça que on retrouve Nombredevies à plusieurs reprises et je pensais que je pouvait réétablir le sens de nombredevies en l'écrivant sous plusieurs forme tu vois le genre ? Et surtout comment faire pour afficher le nombre de la variable avec printf je le marque où le printf dans la fonction main principal ou je dois recréé une fonction si oui, comment quel est le code s'il te plaît ?

                michelbillaud a écrit:

                LosseniKaramoko3 a écrit:

                J'ai fais comme rouloude m'a dis j'ai pas remit de main j'ai donc continuer le cours et là je suis b loquer pour les constante j'ai un autre message d'erreur qui s'affiche le message d'erreur dit redefinition of 'Nombredevies'  with a different types: 'const int vs int'  et quand je demande d'afficher la variable il me remet un message d'erreur qui dit conflicting types for 'printf' rouloude peut m'aider encore stp ? voici le code :

                #include <stdio.h>
                
                int main(int argc, const char * argv[]) {
                    // insert code here...
                    printf("Hello, World!\n");
                    return 0;
                }
                
                int Nombredevies;
                unsigned char losseni;
                long coupledecon;
                
                int Nombredevies;
                Nombredevies = 5;
                Nombredfevies = 67;
                int nombredevies = 5;
                const int Nombredevies = 5;
                
                printf("%d");
                



                -
                Edité par LosseniKaramoko3 il y a 11 minutes


                Les lignes 14 15 et 19 sont des instructions, et ne doivent donc apparaître qu'à l'intérieur d'une fonction.

                (celles de 9 à 13 et la 17 sont des définitions de variables globales).

                La variable Nombredevies est définie trois fois, lignes 9, 13 et 17.  Tu ne trouves pas que tu exagères ? 

                Tu t'aiderait toi-même en essayant d'écrire du code qui a un sens, une intention claire et raisonnable

                -
                Edité par michelbillaud il y a 20 minutes



                -
                Edité par LosseniKaramoko3 18 septembre 2023 à 20:38:35

                • Partager sur Facebook
                • Partager sur Twitter
                  18 septembre 2023 à 20:47:28

                  'main' n'est pas une fonction comme les autres : c'est la fonction d'entrée du programme Lorsque tu lanceras le programme, il commencera par la première instruction du 'main'. Toutes les instructions doivent être soit dans le 'main', soit dans une fonction appelée dans le 'main'.

                  Exemple :

                  #include <stdio.h>
                  
                  void affiche_ascii(int c) // fonction appelée dans le 'main'
                  {
                      printf("N. %03d = %c\n", c, c);
                  }
                  
                  int main(void)         // le 'main' = la fonction principale
                  {
                      printf("Table ASCII\n");
                      for (int i = 0 ; i < 128 ; i++)
                      {
                          affiche_ascii(i);
                      }
                      return 0;
                  }

                  Sinon, je n'ai pas trop compris ce que tu voulais faire. Peut-être quelque chose comme ça :

                  #include <stdio.h>
                   
                  int main(void)   // la fonction principale, 1 seule par programme
                  {
                      int Nombredevies = 5;  // déclaration et affectation
                      printf("Nb de vies = %d\n", Nombredevies);
                      Nombredevies = 26;     // affectation seule puisqu'il est déjà déclaré
                      printf("Nb de vies = %d\n", Nombredevies);
                      Nombredevies = 2 + 2;  // affectation seule puisqu'il est déjà déclaré
                      printf("Nb de vies = %d\n", Nombredevies);
                      return 0;
                  }
                  
                  



                  -
                  Edité par robun 18 septembre 2023 à 20:53:18

                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 septembre 2023 à 20:49:44

                    LosseniKaramoko3 a écrit:

                    Donc si je comprend bien il faut que les ligne d'instruction je les mette à l'intérieur de la fonction ligne 3 à 5? 

                    Oui, les instructions doivent ce mettre entre l'accolade ouvrante et l'accolade fermente des fonctions. Donc ici entre l'accolade ouvrante et l'accolade fermente de la fonction main.

                    LosseniKaramoko3 a écrit:

                    Et surtout comment faire pour afficher le nombre de la variable avec printf je le marque où le printf dans la fonction main principal.

                    Alors le printf tu le mets après avoir créé (défini) la variable :

                    #include <stdio.h>
                    
                    int main(void)
                    {
                        int Nombredevies = 5;
                        printf("%d", Nombredevies);
                    
                        return 0;
                    }

                    -
                    Edité par rouIoude 18 septembre 2023 à 20:56:49

                    • Partager sur Facebook
                    • Partager sur Twitter
                    ...
                      18 septembre 2023 à 22:23:00

                      Ah d'accord et donc si jamais je veux créé une nouvelle fonction, sachant qu'en ouvrant le programme la première fois j'avais déjà la fonction main principal ouverte je dois en toute logique appelé une fonction dans le main. je n'aurai donc plus besoin de rappelez main(void) puisque qu'on le fai qu'une seule fois d'accord. Merci.

                      Et sinon robun comment ta fais pour ne pas a avoir commencer par la fonction principal 'main' sur l'image du code que tu m'a montrer. Ça veut dire qu'on est pas forcément obliger de commencer par la fonction principal main pour débuter un programme ? comment faire alors pour ne pas commencer par la fonction 'main' au début d'un programme mais commencer par une fonction appelé dans le main ?

                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 septembre 2023 à 23:36:52

                        Hello,

                        J'ai 5+ décennies, je viens de me lancer dans l'utilisation des cartes Arduino, et je lis des tutoriels sur le sujet (hard / soft).

                        Si tu en faisais autant pour le langage C ? Il y a des paquets de tutoriels corrects sur developpez.com et zeste de savoir (et d'"autres sites, en anglais). Cela t'aidera certainement à comprendre le mécanisme de la programmation en langage C

                        -
                        Edité par edgarjacobs 18 septembre 2023 à 23:39:29

                        • Partager sur Facebook
                        • Partager sur Twitter

                        On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                          18 septembre 2023 à 23:37:56

                          LosseniKaramoko3 a écrit:

                          Ça veut dire qu'on est pas forcément obliger de commencer par la fonction principal main pour débuter un programme ? comment faire alors pour ne pas commencer par la fonction 'main' au début d'un programme mais commencer par une fonction appelé dans le main ?

                          Tu n'as pas le choix le programme commence toujours par exécuter le code de la fonction main. Si tu veux exécuter le code d'une autre fonction, tu dois l'appeler dans la fonction main. Mais vu tes questions, je pense que tu dois commencer par faire tes codes dans la fonction main, avant d'aborder la création de tes propre fonctions. Essayes déjà comme cela, reprends le cours au début et si ça coince tu peux poster ton code ici, on te dira ce qui ne va pas.
                          • Partager sur Facebook
                          • Partager sur Twitter
                          ...
                            19 septembre 2023 à 8:24:50

                            La fonction main est la seule à être appelée au démarrage du programme. Et bien sûr elle peut en appeler d'autres.

                            Ce qui ne veut pas dire que la fonction main doive être la première dans ton code C.

                            ---

                            Au contraire, une des règles du langage C est qu'on ne peut appeler une fonction que depuis un endroit qui voit sa déclaration (qui est avant). On aura donc plutôt tendance  (à la Pascal) à définir la fonction main en dernier, puisqu'elle appelle les autres.

                            #include <stdio.h>
                            
                            void dire_bonjour()
                            {
                                printf("Bonjour\n");
                            }
                            
                            int main() 
                            {
                                dire_bonjour();
                                return 0;
                            }



                            (Sauf à mettre des déclarations des fonctions appelées, avant de donner leurs définitions. Ça se gâte,  déclaration et définition c'est pas pareil, donc il faut arrêter de dire "créer une fonction", ça veut rien dire)

                            #include <stdio.h>
                            
                            // déclaration 
                            void dire_bonjour();  
                            
                            int main()
                            {
                                dire_bonjour(); // d'ici on voit la declaration
                            }
                            
                            // définition 
                            void dire_bonjour()
                            {
                               printf("Hello\n");
                            }


                            Une définition tient lieu de déclaration, mais pas l'inverse.

                            -
                            Edité par michelbillaud 19 septembre 2023 à 8:40:38

                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 septembre 2023 à 12:52:59

                              Ah merci beaucoup je commence à avancer un peu plus sur le cour je suis au affichage de variable etc. Merci si j'ai d'autres problèmes je viens vous reposer des questions merci encore.

                              -
                              Edité par LosseniKaramoko3 28 septembre 2023 à 10:15:55

                              • Partager sur Facebook
                              • Partager sur Twitter
                                19 septembre 2023 à 13:06:41

                                Pour que l'on puisse t'aider, il nous faut le message d'erreur complet et la ligne associée.

                                Ton code semble correct et ne devrait pas poser de problème à la compilation. Il peut y avoir un problème d'affichage mais c'est à l'exécution donc pas un message d'erreur.

                                • Partager sur Facebook
                                • Partager sur Twitter

                                En recherche d'emploi.

                                  19 septembre 2023 à 13:16:25

                                  Par contre, même si ça marche comme ça, pas besoin d'initialiser

                                  tonage à 10 :

                                  #include <stdio.h>
                                   
                                  int main(int argc, const char * argv[]) {
                                      int ton_age;
                                      
                                      printf("Quel âge as-tu ? ");
                                      scanf("%d", &ton_age);
                                      printf("Ah tu as donc %d", ton_age);
                                  
                                      return 0;
                                  }



                                  -
                                  Edité par Phil_1857 19 septembre 2023 à 13:17:32

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    27 septembre 2023 à 9:36:58

                                    l

                                    -
                                    Edité par LosseniKaramoko3 27 septembre 2023 à 9:42:58

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Problème avec xcode pour language C

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown