Problême avec code block
gnouf1
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
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,
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,
2 réponses
-
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 unchar nom[6]
au moins.
cf : https://www.commentcamarche.net/contents/118-langage-c-les-chaines-de-caracteres
Pour ton dernier printfint chiffre='1';
n'est probablement pas ce que tu veux faire, mais plutôtint 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 -
C'est
printf ("%s",nom);
et non pas
printf ("%s"),nom;