Syntax erreure

Résolu/Fermé
anthony - 25 juil. 2009 à 19:50
 anthony - 29 juil. 2009 à 21:55
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

12 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
25 juil. 2009 à 20:23
...
Les bras m'en tombent.
il faut compiler ton .c !
0
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
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
27 juil. 2009 à 09:25
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
28 juil. 2009 à 15:27
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
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
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
28 juil. 2009 à 16:35
fait comme je t'ai dit un ls.
Fait un "cat main.c" pour vérifier ton code source.
0
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
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
29 juil. 2009 à 07:43
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
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
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
29 juil. 2009 à 16:50
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
ah ok ben merci de ton aide
0