Problême avec code block

gnouf1 -  
[Dal] Messages postés 6373 Statut Contributeur -
Bonjour,
je suis un débutant en programmation C et j'utilise code block.
J'entre différent codes:

#include <stdio.h>
int main(void){
char nom [5]="gnouf";
printf ("%s"),nom;
}

#include <stdio.h>
int main(void){
char lettre='a';
printf ("%c"),lettre;
}

#include <stdio.h>
int main(void){
int chiffre='1';
printf ("%d"),chiffre;
}

Mais jamais il m'affiche ce qu'il faut après re-compilation !

pour le premier cas il m'affiche "@"
pour le second "é"
pour le troisième "4200592
c'est très agacçant
en ésperant une réponse rapide,
A voir également:

2 réponses

[Dal] Messages postés 6373 Statut Contributeur 1 106
 
Salut gnouf1,

Comme le dit Kingzak34, ton usage de printf n'est pas bon : les arguments de printf doivent être à l'intérieur des parenthèses de la fonction printf. C'est le cas d'ailleurs, en général, de toutes les fonctions en C.

http://www.cplusplus.com/reference/cstdio/printf/

D'autres remarques :

char nom [5]="gnouf";

La taille de "nom" est insuffisante pour stocker les caractères qui composent la chaîne et le '\0' terminal. Il faut un
char nom[6]
au moins.

cf : https://www.commentcamarche.net/contents/118-langage-c-les-chaines-de-caracteres

Pour ton dernier printf
int chiffre='1';
n'est probablement pas ce que tu veux faire, mais plutôt
int chiffre=1;
(sans apostrophes), pour que le nombre 1 soit affecté à la variable entière. Autrement '1' (avec des apostrophes) va désigner le caractère '1', et ce que tu vas mettre dans la variable entière, cela sera la valeur du caractère '1' en ASCII, c'est à dire la valeur décimale 49.

Dal
1
Kingzak34 Messages postés 3371 Statut Membre 544
 
C'est

printf ("%s",nom);

et non pas

printf ("%s"),nom;
0