Introduire des phrases en C
Résolu
Limbergh
-
limbergh Messages postés 669 Statut Membre -
limbergh Messages postés 669 Statut Membre -
Bonsoir,
j'ai fais un code en C pour écrire un mot et puis l'afficher.
Quelqu'un peut-il m'expliquer comment on introduis des phrases
complètes.
Voici mon code:
Merci d'avance
Limbergh
j'ai fais un code en C pour écrire un mot et puis l'afficher.
Quelqu'un peut-il m'expliquer comment on introduis des phrases
complètes.
Voici mon code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int choix;
int main(int argc, char *argv[])
{
do
{
char mot[100];
printf("-1- introduisez un mot\n");
printf("-2- affichez le mot\n");
printf("-0- FIN\n");
scanf("%d", &choix);
switch(choix)
{
case 1:
scanf(" %s", &mot);
break;
case 2:
printf("%s\n", mot);
break;
}
}
while(choix!=0);
system("PAUSE");
return 0;
}
Merci d'avance
Limbergh
Configuration: Windows XP Firefox 2.0.0.12
12 réponses
-
écrit plutôt comme ça
il faut éviter les variables globales#include <stdio.h> #include <stdlib.h> #include <string.h> int choix; int main (int argc, char *argv[]) { char mot[100]; int choix = 1; do { printf ("-1- introduisez un mot\n"); printf ("-2- affichez le mot\n"); printf ("-0- FIN\n"); printf("Faites votre choix : "); scanf ("%d", &choix); getchar(); switch (choix){ case 1: printf("Saisissez le mot/phrase : "); fgets(mot,100,stdin); break; case 2: printf ("Vous avez saisi : %s\n", mot); break; } } while (choix != 0); system ("PAUSE"); return 0; } -
Utilise plutôt la fonction fgets(char *s,int size, FILE *stream)
dans ton cas ça donnefgets(mot,100,stdin);
et ne declare pas char mot[100] dans la boucle -
Salut,
scanf(" %s", &mot);
écritscanf("%s", mot); -
je vois que tu n'as pas compris ça
scanf("%s", &mot);
mot c'est une chaîne de caractères donc un tableau de caractères en C
mot c'est l'adresse de 1er élément
danc ce cas on ne mets pas & devant
pour scanf il faut savoir que l'espace c'est un séparateur
donc même si tu as declaré char mot[100], scanf s'en fiche complétement, il ne va prendre qu'un seul mot
pour prendre trois mot par exemple il faut utiliser
scanf("%s %s %s",mot1,mot2,mot3);
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ton code saisit déjà des phrases jusqu'à 100 caractères. (Phrase = mots séparés par des espaces)
-
ok,
mais quand j'introduis une phrase, il ne m'affiche que le dernier mot
et je ne vois pas pourquoi??? -
Je viens de le faire et ça ne change rien. J'ai toujours le dernier mot
qui s'affiche -
Donc, je ne vois pas ce qu'il faut faire pour afficher une phrase à l'écran
revoici mon code
#include <stdio.h> #include <stdlib.h> #include <string.h> int choix; int main(int argc, char *argv[]) { do { char mot[100]; printf("-1- introduisez un mot\n"); printf("-2- affichez le mot\n"); printf("-0- FIN\n"); scanf("%d", &choix); switch(choix) { case 1: scanf(" %s", &mot); break; case 2: printf("%s\n", mot); break; } } while(choix!=0); system("PAUSE"); return 0; }
merci d'avance -
rebonsoir,
j'ai mis ce que tu m'as dit mais maintenant il ne m'affiche plus le premier mot.
Je te remet mon code, j'ai peut-être fait une erreur???
#include <stdio.h> #include <stdlib.h> #include <string.h> char mot[100]; int choix; int main(int argc, char *argv[]) { do { printf("-1- introduisez un mot\n"); printf("-2- affichez le mot\n"); printf("-3- introduisez des numeros de tableau\n"); printf("-0- FIN\n"); scanf("%d", &choix); getchar(); switch(choix) { case 1: scanf("%s", mot); fgets(mot,100,stdin); break; case 2: printf("%s\n", mot); break; default : break; } } while(choix!=0); system("PAUSE"); return 0; }
Encore merci pour tout, c'est d'ailleurs pas la première fois... -
merci pour ton aide...
Tu sais juste encore m'expliquer ce que viens faire le getchar()...
Après j'arrête de t'ennuyer!!!
Bon sans blaguer, merci d'avance
Limbergh -
getchar(); lit le caractère '\n' qui traine dans le buffer
sinon tu ne pourras pas saisir le mot ou la phrase
tu peux enlever getchar(); pour voir
quand tu entre la valeur de choix qui est un entier tu appuies sur ENTREE pour continuer
c'est à ce moment que le caractère '\n' traine -