Comment saisir une chaine de caractères [c] - C - Programmation
Marsh Posté le 22-01-2005 à 19:41:58
parce que tu passes en paramètre '&saisie' au lieu de 'saisie'
'saisie' est déjà un pointeur au départ
Marsh Posté le 22-01-2005 à 19:49:48
même en mettant saisie le résultat est le même.
J'ai aussi essayé de mettre %s au début, comme indiqué dans le K&R, idem...
Marsh Posté le 22-01-2005 à 19:58:02
j'ai ré-expliqué mon problème car pas clair
Marsh Posté le 22-01-2005 à 20:12:49
c pas un problème qu'il s'arrete au 1er espace non ?
car sinon au lieu de %s, tu peux le remplacer par %512[^\n]
Marsh Posté le 22-01-2005 à 20:16:50
envoie un fflush(stdout) après le printf("%s",saisie)
Marsh Posté le 22-01-2005 à 23:18:02
taz a déja donné plein de trucs, j'ai repondu a un precedent message en mettant le code, donc la fonction recherche elle est pas la pour rien
Marsh Posté le 22-01-2005 à 23:18:30
ReplyMarsh Posté le 23-01-2005 à 10:04:04
[Merci d'utiliser les balises pour le code. Boutons [fixe] ou [C/C++]]
capitaine choc a écrit :
|
Probablement parce que tu n'a pas inclus <stdio.h>. D'autre part, il manque un '\n' ou un fflush(stdout)
http://mapage.noos.fr/emdel/notes.htm#fflush_stdout
Je te garanti que ce code est conforme :
|
|
Si il ne fonctionne pas chez toi, c'est que ta chaine de développement est bugguée ou mal configurée ou mal installée.
Ceci-dit, cette façon de saisir est peu recommandée, voire dangereuse.
http://mapage.noos.fr/emdel/notes.htm#saisie
Marsh Posté le 23-01-2005 à 10:05:04
Harkonnen a écrit : parce que tu passes en paramètre '&saisie' au lieu de 'saisie' |
C'est une adresse (a pointer constant)
Marsh Posté le 23-01-2005 à 10:17:50
Emmanuel Delahaye a écrit : C'est une adresse (a pointer constant) |
tiens, petite question ! j'ai remarqué chez moi que malgré l'absence de fflush(stdout) ou de '\n', la ligne était quand même affichée.
idem en C++ si je fais un cout << "toto", le 'toto' s'affiche malgré l'absence du << endl.
as tu une explication ?
edit: je suis sous windows, j'ai testé avec le compilateur de Visual Studio 2003
Marsh Posté le 24-11-2012 à 21:13:30
comment je mettre sa dans une fonction avec retour ,Voici l'extrait de mon code:
#include<stdio.h>
#include<string.h>
int main ()
{
char CIN[8] ;
int verif1;
verif1=1;
do{
printf(" Enter votre cin\n" );
gets(CIN);
if (strlen(CIN)!= 8 )
{verif1=0;
printf(" votre CIN est invalide\n" );
}
else {
printf(" bien saisir\n" );
verif1=1;
}
}while (verif1==0);
return 0;
}
Marsh Posté le 22-01-2005 à 19:36:01
J'ai honte, vraiment honte mais je n'arrive pas à saisir une chaîne de caractères en C. Pourtant je fais comme j'ai trouvé dans la doc, ça compile, avec GCC, mais ça ne marche pas. Voici l'extrait de mon code:
#define LG_MAX 512
char saisie[LG_MAX];
printf("Votre saisie:\n" );
scanf("%s",saisie);
//et là ça plante:
printf("%s",saisie);
Visiblement la valeur n'est pas saisie, pourquoi?
Merci.
Message édité par capitaine choc le 22-01-2005 à 19:57:35
---------------
.