Problème avec printf ^^
Résolu
Profil bloqué
-
Nabla's Messages postés 18203 Date d'inscription Statut Contributeur Dernière intervention -
Nabla's Messages postés 18203 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Alors voici ma ligne de code :
Il me met erreur sur cette ligne mais je ne voit pas l'erreur. je comence juste le C ^^
Merci d'avance
Alors voici ma ligne de code :
Printf("\nMonsieur %d %d declare : %d ",nom, prenom, avis);
Il me met erreur sur cette ligne mais je ne voit pas l'erreur. je comence juste le C ^^
Merci d'avance
A voir également:
- Problème avec printf ^^
- Undefined reference to printf ✓ - Forum Programmation
- Printf nan - Forum Programmation
- Printf binaire ✓ - Forum C
- Printf FLags ✓ - Forum C
- [Langage C] printf pour un double - Forum C
37 réponses
%d c'est pour les doubles...
à priopri toi tu veux des chaines de caractères, il faut utiliser %s (pour string)
pour en savoir plus: http://www.cplusplus.com/reference/cstdio/printf/
à priopri toi tu veux des chaines de caractères, il faut utiliser %s (pour string)
Printf("\nMonsieur %s %s declare : %s ",nom, prenom, avis);
pour en savoir plus: http://www.cplusplus.com/reference/cstdio/printf/
salut
ce sont des chaines de caractères et non des int, tu les déclares comme cela :
ce sont des chaines de caractères et non des int, tu les déclares comme cela :
char nom,prenom [20], char avis [15];
Voici mon programme en entier :
Et c'est la ligne :
Qui Bloque .
int main(int argc, char *argv[]) { int vie,joueur, ennemy; vie = 5; joueur = 5; ennemy = 5; printf("Il y a %d joueurs qui ont chacuns %d vies. \nIls doivent combatre %d ennemy ensemble.\n",vie, joueur, ennemy); printf("Entrer un Nombre :"); int mort =0; scanf("%d", &mort); int ennemy2, ennemy3; ennemy2 = ennemy - mort + joueur ; ennemy3 = ennemy2 + mort - ennemy ; printf ("Vous avez tuez %d ennemy, Mais %d arrive en plus. \nIl y a donc maintenant %d ennemy.\n",mort, ennemy3, ennemy2); printf("Entrez votre Prenom : "); int prenom = 0, nom = 0, avis = 0; scanf("%s",&prenom); printf("Entrez Votre nom : "); scanf("%s",&nom); printf("\nQu'elle votre reaction a propose de ce programme ? "); scanf("%s",&avis); Printf("\nMonsieur %s %s declare : %s ",nom, prenom, avis); system("PAUSE"); return EXIT_SUCCESS; }
Et c'est la ligne :
Printf("\nMonsieur %s %s declare : %s ",nom, prenom, avis);
Qui Bloque .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
en effet, tu écris :
mais si tu utilise %s, tu parles de chaines de caractères et pas d'entiers, déclare ces 3 variables comme je t'ai indiqué.
petit conseil : déclare tes variable ensemble, c'est + lisible
int prenom = 0, nom = 0, avis = 0;
mais si tu utilise %s, tu parles de chaines de caractères et pas d'entiers, déclare ces 3 variables comme je t'ai indiqué.
petit conseil : déclare tes variable ensemble, c'est + lisible
Salut,
tu déclares nom, prenom et avs en int donc c'est bien %d mais quand tu fais le scanf c'est bien des entiers que tu rentres? (série de chiffre, sans lettre)
tu déclares nom, prenom et avs en int donc c'est bien %d mais quand tu fais le scanf c'est bien des entiers que tu rentres? (série de chiffre, sans lettre)
Je sais pas programmer encore ! donc aprennez moi plutôt que de me remballer !
Comment on détect les variable en chaine de caractere ?
char nom, prenom, avis ?
Comment on détect les variable en chaine de caractere ?
char nom, prenom, avis ?
je ne te "remballe" pas, je t'explique ton problème et je comprends ton statut de débutant...on est tous passés par là, alors reste poli, stp.
un int c'est un nombre entier : 1, 35, 560...sans virgule
un char (caractère), c'est une seule lettre : a, b, c, w...
une chaine de caractère est un ensemble de plusieurs lettre, tu déclares cela comme un tableau de char, par exemple, un nom ou un prénom sont des chaines de caractères (tu n'as pas de nom à une seule lettre).
tu suis?
un int c'est un nombre entier : 1, 35, 560...sans virgule
un char (caractère), c'est une seule lettre : a, b, c, w...
une chaine de caractère est un ensemble de plusieurs lettre, tu déclares cela comme un tableau de char, par exemple, un nom ou un prénom sont des chaines de caractères (tu n'as pas de nom à une seule lettre).
tu suis?
en effet...
int: entier sur 4 octets avec les nombres négatifs (par défaut c'est signed int si on veut etrehyper propre... jamais vu ;))
unsigned int: entier positif (permet d'avoir une valeur maximum 2 fois plus importante)
short: pareil, mais sur 2 octets (65536 valeurs possibles... dont de -32000 à +32000 ou de 0 à 65000 si on est en signed)
char (un octet): un charactère tout seul
string: chainde de charactères....
pour faire les chaines de charactères, tu peux prendre des objets string tout fait, ou utiliser un tableau de caractères, par exemple: char*nom[20] est un tableau de 20 case, permettant de stocker 19 caractères + le caractère de fin de chaine '\0' (très important).
bool: booléen (un octet car c'est dur de faire un seul bit!): vrai ou faux (true, false)
float, double : nombres à virgule...
comme ca a été dit plus haut, il est préférable de déclarer tes variables en haut de ton code, tout au meme endroit, c'est plus facile pour s'y retrouver...
pour cette partie par exemple :
int vie,joueur, ennemy;
vie = 5;
joueur = 5;
ennemy = 5;
j'aurai fait
int vie=5;
int joueur=5;
int ennemy=5;
je préfère, mais après chacun est libre de faire comme il veut
int: entier sur 4 octets avec les nombres négatifs (par défaut c'est signed int si on veut etrehyper propre... jamais vu ;))
unsigned int: entier positif (permet d'avoir une valeur maximum 2 fois plus importante)
short: pareil, mais sur 2 octets (65536 valeurs possibles... dont de -32000 à +32000 ou de 0 à 65000 si on est en signed)
char (un octet): un charactère tout seul
string: chainde de charactères....
pour faire les chaines de charactères, tu peux prendre des objets string tout fait, ou utiliser un tableau de caractères, par exemple: char*nom[20] est un tableau de 20 case, permettant de stocker 19 caractères + le caractère de fin de chaine '\0' (très important).
bool: booléen (un octet car c'est dur de faire un seul bit!): vrai ou faux (true, false)
float, double : nombres à virgule...
comme ca a été dit plus haut, il est préférable de déclarer tes variables en haut de ton code, tout au meme endroit, c'est plus facile pour s'y retrouver...
pour cette partie par exemple :
int vie,joueur, ennemy;
vie = 5;
joueur = 5;
ennemy = 5;
j'aurai fait
int vie=5;
int joueur=5;
int ennemy=5;
je préfère, mais après chacun est libre de faire comme il veut
C'est simple, soit tu utilises des int (= nombres entiers) pour tes prénoms et noms pour des raisons de simplicité comme tu débutes (pas toujours facile de manipuler des strings (= chaine de caractères) au départ et dans ce cas pour les afficher tu utilises %d mais dans le scanf tu ne rentres que des chiffres, soit tu utilises des string que tu déclares comme un tableau de caractères (exemple char[20]) et dans ce cas tu ne dois pas dépasser le nombre de caractère entre crochet, pour les afficher tu utilises %s.
Après sache que le mieux est aussi de rester correct, on essaye de t'aider, la moindre des choses c'est de faire des efforts pour comprendre et de poser des questions calmement, sinon j'ai pleins d'autres choses à faire personnellement :)
Après sache que le mieux est aussi de rester correct, on essaye de t'aider, la moindre des choses c'est de faire des efforts pour comprendre et de poser des questions calmement, sinon j'ai pleins d'autres choses à faire personnellement :)
si tu parles toujours de tes variables nom et prénom, c'est char[nombre entier] qu'il faut mettre pour déclarer une chaine de caractères :
comme je te l'ai dit dans un précédent post :
ici, j'ai pris 15 et 20, mais à toi de choisir la taille que tu veux.
reposte ton code si besoin
comme je te l'ai dit dans un précédent post :
char nom,prenom [20], char avis [15];
ici, j'ai pris 15 et 20, mais à toi de choisir la taille que tu veux.
reposte ton code si besoin
Toujour le même problème.
le code est :
le code est :
char prenom, nom, avis [100]; scanf("%s",&prenom); printf("Entrez Votre nom : "); scanf("%s",&nom); printf("\nQu'elle votre reaction a propose de ce programme ? "); scanf("%s",&avis); Printf("\nMonsieur %s %s declare : %s ",nom, prenom, avis); system("PAUSE");
Tu ne dois pas seulement mettre char. En effet, un nom ou un prénom est rarement constitué d'une seule lettre. Tu dois donc utiliser un tableau de caractères. Par exemple : char[4] prenom = "Mary";
Le 4 représente la taille de ta chaine, mais tu peux réserver 10 caractères pour une chaîne n'étant formée que de 3 caractères. Attention si tu ne mets pas une taille assez grande, en cas de dépassement de ton tableau, ton programme va planter.
Et ensuite, il faudra remplacer tes %d en %s ;)
Le 4 représente la taille de ta chaine, mais tu peux réserver 10 caractères pour une chaîne n'étant formée que de 3 caractères. Attention si tu ne mets pas une taille assez grande, en cas de dépassement de ton tableau, ton programme va planter.
Et ensuite, il faudra remplacer tes %d en %s ;)
Sa marche .... presque ^^
maintenant je le lance je vais jusqu'au bout et au moment d'afficher le dernier printf il me met, projet1.exe a rencontré un problème et doit fermer : envoyer le rapport / ne pas envoyer.
Rha sa m'énerve
maintenant je le lance je vais jusqu'au bout et au moment d'afficher le dernier printf il me met, projet1.exe a rencontré un problème et doit fermer : envoyer le rapport / ne pas envoyer.
Rha sa m'énerve
Le voici,
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int vie,joueur, ennemy; vie = 5; joueur = 5; ennemy = 5; printf("Il y a %d joueurs qui ont chacuns %d vies. \nIls doivent combatre %d ennemy ensemble.\n",vie, joueur, ennemy); printf("Entrer un Nombre :"); int mort =0; scanf("%d", &mort); int ennemy2, ennemy3; ennemy2 = ennemy - mort + joueur ; ennemy3 = ennemy2 + mort - ennemy ; printf ("Vous avez tuez %d ennemy, Mais %d arrive en plus. \nIl y a donc maintenant %d ennemy.\n",mort, ennemy3, ennemy2); printf("Entrez votre Prenom : "); char prenom, nom, avis [100]; scanf("%s",&prenom); printf("Entrez Votre nom : "); scanf("%s",&nom); printf("\nQu'elle votre reaction a propose de ce programme ? "); scanf("%s",&avis); printf("\nMonsieur %s %s declare : %s ",nom, prenom, avis); system("PAUSE"); return EXIT_SUCCESS; }
%d c'est pour les doubles...
Non, c'est pour les int ;-))).