Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Super debutant

85 réponses
Avatar
Albert
Bonjour a tous,
Voila je commence le C sur linux ( RH 9 - gcc gcc (GCC) 3.2.2 20030222
(Red Hat Linux 3.2.2-5)
Je fais le prg le + simple possible :

main()
{
int a = 17 , b = 36;
printf("%d\n, a * b );
}
a la compile j'obtients :
[gil@P4LX gil]$ cc -c test.c
test.c:1: erreur d'analyse syntaxique avant « buffer »
test.c:1:36: caractère ' de terminaison manquant
test.c:1:36: AVERTISSEMENT: constante caractère trop longue
test.c:2: erreur d'analyse syntaxique avant « you »
test.c:2: erreur d'analyse syntaxique avant « that »
test.c:3: erreur d'analyse syntaxique avant « enter »
test.c:3:36: caractère ' de terminaison manquant
test.c:3:36: AVERTISSEMENT: constante caractère trop longue
test.c:7:10: AVERTISSEMENT: chaîne de mots multi-lignes sont dépréciés
test.c:7:10: caractère " de terminaison manquant
test.c:7:10: début possible d'une chaîne de mot non terminée
test.c:7: erreur d'analyse syntaxique avant la constante chaîne
[

J'avoue avoir beaucoup (trop) oublie le C quand j'etait jeune mais la je
ne comprends pas. Ne vous moquez pas trop !!

Merci pour les reponses.
gilles

10 réponses

1 2 3 4 5
Avatar
fabrizio
printf("%dn", a * b );

Vous aviez oublié une double quote ?
Avatar
Stephane Zuckerman
On Tue, 25 Oct 2005, fabrizio wrote:

printf("%dn", a * b );

Vous aviez oublié une double quote ?


Tant qu'on y est, quand même :
main()
{
int a = 17 , b = 36;
printf("%dn, a * b );
}

Il manque un "int" avant le main. Et un "return 0" à la fin de la
fonction.

--
"Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce
que je veux !"
"The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers." (Bill Gates, The Road Ahead)

Avatar
Albert
printf("%dn", a * b );

Vous aviez oublié une double quote ?
Exact merci mais cela ne resoud pas le Pb. Difficile de reprendre !!!


void main()
{
int a = 17 , b = 36;
printf("%dn", a * b );
}

Avatar
Albert
On Tue, 25 Oct 2005, fabrizio wrote:


printf("%dn", a * b );

Vous aviez oublié une double quote ?



Tant qu'on y est, quand même :
main()
{
int a = 17 , b = 36;
printf("%dn, a * b );
}

Il manque un "int" avant le main.


Et un "return 0" à la fin de la
fonction.

Un exit peut etre dans la fonction main() ??
Merci de la reponse
gilles


Avatar
Marc Boyer
Le 25-10-2005, Albert a écrit :
Bonjour a tous,
Voila je commence le C sur linux ( RH 9 - gcc gcc (GCC) 3.2.2 20030222
(Red Hat Linux 3.2.2-5)
Je fais le prg le + simple possible :

main()
{
int a = 17 , b = 36;
printf("%dn, a * b );
}
a la compile j'obtients :


Je soupsonne que tu ne compiles pas le code que tu nous
montres, car;
[ gil]$ cc -c test.c
test.c:1: erreur d'analyse syntaxique avant « buffer »
aucun 'buffer' ligne 1

test.c:1:36: caractère ' de terminaison manquant
test.c:1:36: AVERTISSEMENT: constante caractère trop longue
test.c:2: erreur d'analyse syntaxique avant « you »
aucun 'you' ligne 2

test.c:2: erreur d'analyse syntaxique avant « that »
aucun 'that' ligne 2


etc...

Marc Boyer
--
À vélo, prendre une rue à contre-sens est moins dangereux
que prendre un boulevard dans le sens légal. À qui la faute ?

Avatar
Albert

Bonjour a tous,
Voila je commence le C sur linux ( RH 9 - gcc gcc (GCC) 3.2.2 20030222
(Red Hat Linux 3.2.2-5)
Je fais le prg le + simple possible :

main()
{
int a = 17 , b = 36;
printf("%dn, a * b );
}
a la compile j'obtients :



Je soupsonne que tu ne compiles pas le code que tu nous
montres, car;

[ gil]$ cc -c test.c
test.c:1: erreur d'analyse syntaxique avant « buffer »


aucun 'buffer' ligne 1

test.c:1:36: caractère ' de terminaison manquant
test.c:1:36: AVERTISSEMENT: constante caractère trop longue
test.c:2: erreur d'analyse syntaxique avant « you »


aucun 'you' ligne 2

test.c:2: erreur d'analyse syntaxique avant « that »


aucun 'that' ligne 2

etc...

Marc Boyer
C'est axactement ce que je ne comprends pas:

le texte est : ( copie/colle)

gil]$ cat test.c
;; This buffer is for notes you don't want to save, and for Lisp evaluation.
;; If you want to create a file, visit that file with C-x C-f,
;; then enter the text in that file's own buffe
void main()
{
int a = 17 , b = 36;
printf("%dn", a * b );
}
j'ai qques notions en C et c'est pourquoi je ne comprends pas.
Je pense + vers un Pb de version de compilateur avec ma version de RH9.
gilles


Avatar
Harpo
Albert wrote:

Bonjour a tous,
Voila je commence le C sur linux ( RH 9 - gcc gcc (GCC) 3.2.2 20030222
(Red Hat Linux 3.2.2-5)
Je fais le prg le + simple possible :

main()
{
int a = 17 , b = 36;
printf("%dn, a * b );
}
a la compile j'obtients :
[ gil]$ cc -c test.c
test.c:1: erreur d'analyse syntaxique avant « buffer »
test.c:1:36: caractère ' de terminaison manquant
test.c:1:36: AVERTISSEMENT: constante caractère trop longue
test.c:2: erreur d'analyse syntaxique avant « you »
test.c:2: erreur d'analyse syntaxique avant « that »
test.c:3: erreur d'analyse syntaxique avant « enter »
test.c:3:36: caractère ' de terminaison manquant
test.c:3:36: AVERTISSEMENT: constante caractère trop longue
test.c:7:10: AVERTISSEMENT: chaîne de mots multi-lignes sont dépréciés
test.c:7:10: caractère " de terminaison manquant
test.c:7:10: début possible d'une chaîne de mot non terminée
test.c:7: erreur d'analyse syntaxique avant la constante chaîne
[


Putain de compilateur français de merde ! Où va-t-il trouver tout ça ?
comme vient de le dire Marc Boyer les erreurs ne correspondent pas au
programme.
Le programme est-il dans le même répertoire que celui dans lequel tu as
fait la compile ? A-t-il le même nom ? Est-ce un programme en C ?
De plus :
printf ne doit pas pouvoir marcher sabs un #include <stdio.h>
Appeler un programme "test" n'est pas toujours une excellente idée sur
un Unix. mais bon...
Je ne pense pas qu'il soit intéressant d'avoir les messages en
français, pas simplement parce qu'ils sont verbeux e mal traduits mais
surtout si tu recherche une erreur sur google, tu as plus de chance de
trouver quelque chose qui correspond.

Avatar
Marc Boyer
Le 25-10-2005, Albert a écrit :
gil]$ cat test.c
;; This buffer is for notes you don't want to save, and for Lisp evaluation.
;; If you want to create a file, visit that file with C-x C-f,
;; then enter the text in that file's own buffe
void main()
{
int a = 17 , b = 36;
printf("%dn", a * b );
}
j'ai qques notions en C et c'est pourquoi je ne comprends pas.


En C, les commentaires sont /* */ ou //, mais pas ;;.

D'ailleurs, emacs est gentil, il te le dit:
'This buffer is for notes you don't want to save, and for Lisp
evaluation'

Enlève ces 3 lignes, ajoute un
#include <stdio.h>
et ça devrait mieux se passer.

Marc Boyer
--
À vélo, prendre une rue à contre-sens est moins dangereux
que prendre un boulevard dans le sens légal. À qui la faute ?

Avatar
Eric Levenez
Le 25/10/05 21:15, dans <435e8442$0$988$,
« Albert » a écrit :

C'est axactement ce que je ne comprends pas:
le texte est : ( copie/colle)

gil]$ cat test.c
;; This buffer is for notes you don't want to save, and for Lisp evaluation.
;; If you want to create a file, visit that file with C-x C-f,
;; then enter the text in that file's own buffe
void main()
{
int a = 17 , b = 36;
printf("%dn", a * b );
}


Il faut remplacer les ;; par des // car les commentaires en C ne sont pas et
n'ont jamais été des ;;.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
Albert
Le 25/10/05 21:15, dans <435e8442$0$988$,


C'est axactement ce que je ne comprends pas:
le texte est : ( copie/colle)

gil]$ cat test.c
;; This buffer is for notes you don't want to save, and for Lisp evaluation.
;; If you want to create a file, visit that file with C-x C-f,
;; then enter the text in that file's own buffe
void main()
{
int a = 17 , b = 36;
printf("%dn", a * b );
}



Il faut remplacer les ;; par des // car les commentaires en C ne sont pas et
n'ont jamais été des ;;.



Tu me fais tres mal a ma memoire ( enfin ce qu'il en reste ).
Mais j'ai pu compile. Merci
gilles


1 2 3 4 5