Syntax erreure

Résolu
anthony -  
 anthony -
Bonjour,
voila je suis sous mandriva j'ai code blocks la version 8.02 j'ai créé mon projet test j'ai un minimum de code "bonjour monde" je l'éxecute dans la console grace a la commande ./main.c mais voila ce qua sa me met :
[user@guillemot test]$ ./main.c
: command not found
./main.c: line 4: syntax error near unexpected token `('
'/main.c: line 4: `int main(int argc, char *argv[])
[user@guillemot test]$ 

je ne comprend pas pourquoi sa me fait sa
Configuration: Linux
Firefox 2.0.0.15

12 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    ...
    Les bras m'en tombent.
    il faut compiler ton .c !
    0
  2. anthony
     
    bon ok je compile en appuyant sur build je vais dans la console je tape ./main.c et sa m'affiche :
    ./main.c: line 4: syntax error near unexpected token `('
    '/main.c: line 4: `int main(int argc, char *argv[])
    
    0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    logique, main.c c'est ton source.
    Le prog compiler, il porte un autre nom. a.out, ou main ou autre, si tu as un projet.
    0
  4. anthony
     
    Re,
    bon alors j'ai tapez cette commande ./a.out et sa a bien exécuter le code source sa m'affiche "hello world" mais voila après j'ai fait un code le voici:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
       int nombre = 80, nbre = 0;
       while(nbre != nombre)
       {
           printf("trouvez le bon nombre\n");
           scanf("%d", nbre);
           if(nbre < nombre)
           {
               printf("superieur!!\n");
           }
           else if(nbre > nombre)
           {
               printf("inferieur!!!\n");
           }
           else if(nbre == nombre)
           {
               printf("Bravo vous venz de trouver le bon numero\n");
           }
       }
        return 0;
    }
    

    donc sa devrais fonctionner sur la console?? et ben non il m'affiche toujours hello world quand je tape ./a.out
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    As tu bien fais le build ?
    dans la console, tape "ls -lF" afin de voir tout les fichiers exécutables.
    il faut : scanf("%d",& nbre); sinon tu va avoir une erreur.
    0
  7. anthony
     
    j'ai corriger mon erreur j'ai fait build je vais dans la console je vais dans mon porjet je tape ./a.out et sa m'affiche hello world alors que c'est pas ce qu'il y a dans mon code source
    0
  8. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    fait comme je t'ai dit un ls.
    Fait un "cat main.c" pour vérifier ton code source.
    0
  9. anthony
     
    voila j'ai fait un ls et un cat sur le fichier main.c et voila ce qua sa m'affiche :
    [user@guillemot test]$ ls -lF
    total 21
    -rwxrwxr-x 1 user user 6145 2009-07-25 18:38 a.out*
    drwxr-xr-x 3 user user 1024 2009-07-25 18:33 bin/
    -rwxrwxr-x 1 user user 6530 2009-07-28 15:32 main*
    -rw-rw-r-- 1 user user  511 2009-07-28 15:31 main.c
    -rw-rw-r-- 1 user user 1132 2009-07-28 15:32 main.o
    drwxr-xr-x 3 user user 1024 2009-07-25 18:33 obj/
    -rw-rw-r-- 1 user user  727 2009-07-25 18:32 test.cbp
    -rw-rw-r-- 1 user user   96 2009-07-25 21:33 test.depend
    [user@guillemot test]$ cat main.c
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
       int nombre = 80, nbre = 0;
       while(nbre != nombre)
       {
           printf("trouvez le bon nombre\n");
           scanf("%d", &nbre);
           if(nbre < nombre)
           {
               printf("superieur!!\n");
           }
           else if(nbre > nombre)
           {
               printf("inferieur!!!\n");
           }
           else if(nbre == nombre)
           {
               printf("Bravo vous venz de trouver le bon numero\n");
           }
       }
        return 0;
    }
    [user@guillemot test]$ 
    
    0
  10. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    dans le ls, tu vois que tu as 2 exécutables "main" et "a.out".
    Je pense que là il a du compiler dans "main".
    Test ./main.
    0
  11. anthony
     
    ah ba oui tout marche correcteent mais dit moi il y a un truc que je veus savoir a propos de ta commande ls -lF
    elle donne exactement le meme résultat que si je tapez ls -l donc je voudrais savoir a quoi sert le F après le ls -l
    0
  12. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Le F sert à afficher les caractères en fin de nom de fichier (cf. man ls), * en fin de fichier exécutable / en fin de répertoire etc.
    Mais ls à des comportement par défaut configurable, donc d'une machine à l'autre, ls ne donnera pas forcément le même résultat. Il est possible que sur ta machine F soit par défaut.
    Voilà.
    0