C - problème chaine espaces
Résolu/Fermé
capa57
Messages postés
352
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
26 mai 2016
-
25 nov. 2011 à 17:29
Utilisateur anonyme - 28 nov. 2011 à 20:38
Utilisateur anonyme - 28 nov. 2011 à 20:38
A voir également:
- C - problème chaine espaces
- Espaces insécables - Guide
- Chaine tnt gratuite sur mobile - Guide
- Nouvelle chaîne tnt gratuite 2024 - Accueil - TV & Vidéo
- Chaine radio - Télécharger - Médias et Actualité
- Plus de chaine tv - Guide
6 réponses
Utilisateur anonyme
Modifié par scribedico le 25/11/2011 à 17:59
Modifié par scribedico le 25/11/2011 à 17:59
Salut,
c'est normal, pour la fonction scanf l'espace est un separateur donc tu ne peux recuperer que des mots, utilise la fonction fgets
fgets(phrase,100,stdin);
c'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air brillant avant d'avoir l'air k.on !
c'est normal, pour la fonction scanf l'espace est un separateur donc tu ne peux recuperer que des mots, utilise la fonction fgets
fgets(phrase,100,stdin);
c'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air brillant avant d'avoir l'air k.on !
capa57
Messages postés
352
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
26 mai 2016
13
25 nov. 2011 à 18:46
25 nov. 2011 à 18:46
j'ai remplacer scanf("%s", phrase); par fgets(phrase,100,stdin); mais maintenant il me propose plus de taper quelque chose au clavier ... le programme coupe directement
capa57
Messages postés
352
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
26 mai 2016
13
26 nov. 2011 à 14:11
26 nov. 2011 à 14:11
il fallait en mettre 2
Utilisateur anonyme
Modifié par scribedico le 26/11/2011 à 17:16
Modifié par scribedico le 26/11/2011 à 17:16
oups! j'ai oublié te te dire, le scanf précedent laisse trainer un '\n' dans le
buffer, il faut donc le vider sinon c'est fgets qui le récupére et tu as l'impression qu'il ne marche pas, d'où le 2eme appel nécessaire.
place getchar() juste avant fgets, c'est plus propre que 2 fgets (:-)
c'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air brillant avant d'avoir l'air k.on !
buffer, il faut donc le vider sinon c'est fgets qui le récupére et tu as l'impression qu'il ne marche pas, d'où le 2eme appel nécessaire.
place getchar() juste avant fgets, c'est plus propre que 2 fgets (:-)
c'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air brillant avant d'avoir l'air k.on !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
capa57
Messages postés
352
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
26 mai 2016
13
28 nov. 2011 à 20:20
28 nov. 2011 à 20:20
thanks ça marche maintenant ;)
pour ceux qui veulent le code..
#include <stdio.h>
int main(char argc, char *argv[]){
char nom[20],phrase[100];
FILE *fichier;
printf("nom du fichier ? \n");
scanf("%s", nom);
fichier=fopen(nom,"w");
printf("Entrez une phrase \n");
getchar();
fgets(phrase,100,stdin);
printf("phrase : %s", phrase);
fprintf(fichier,"%s\n",phrase);
}
pour ceux qui veulent le code..
#include <stdio.h>
int main(char argc, char *argv[]){
char nom[20],phrase[100];
FILE *fichier;
printf("nom du fichier ? \n");
scanf("%s", nom);
fichier=fopen(nom,"w");
printf("Entrez une phrase \n");
getchar();
fgets(phrase,100,stdin);
printf("phrase : %s", phrase);
fprintf(fichier,"%s\n",phrase);
}
Utilisateur anonyme
Modifié par scribedico le 28/11/2011 à 20:41
Modifié par scribedico le 28/11/2011 à 20:41
(:-)
c'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air brillant avant d'avoir l'air k.on !
c'est parce que la vitesse de la lumière est supérieure à celle du son que certains ont l'air brillant avant d'avoir l'air k.on !