Problême avec code block

Fermé
gnouf1 - 24 oct. 2013 à 00:42
[Dal] Messages postés 6180 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 15 mai 2024 - 24 oct. 2013 à 10:29
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 6180 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 15 mai 2024 1 084
Modifié par [Dal] le 24/10/2013 à 10:31
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 2943 Date d'inscription dimanche 4 juillet 2010 Statut Membre Dernière intervention 24 octobre 2013 544
24 oct. 2013 à 00:58
C'est

printf ("%s",nom);

et non pas

printf ("%s"),nom;
0