begin process at 2012 05 29 08:44:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

HELP!!!! gérer les espace dans mon prog lors des questions


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

HELP!!!! gérer les espace dans mon prog lors des questions

jeudi 9 juin 2005 à 09:55:07 | HELP!!!! gérer les espace dans mon prog lors des questions

Ethylotek

bijours
voici le début de mon prog :
    printf("Veuillez saisir votre nom:\n");
    scanf("%s",name);
    printf("Veuillez saisir le nom de votre organisation:\n");
    scanf("%s",org);
    printf("Veuillez saisir le nom de votre ordinateur:\n");
    scanf("%s",computer);
    printf("Veuillez saisir la clef produit de votre Windows XP:\n");
    scanf("%s",key);

voici mon probleme : lorsque la premiere ligne s'exécute et que l'on me demande un nom, je ne peut pas rentrer 2 nom (ex: Pierre fgrtrt "avec un espace entre") car il place le premier nom dans "nom" et le deuxieme nom dans "org" !
comment faire pour que le prog gère l'espace ? pour pouvoir rentrer nom prénom et ensuite org,computer,key
merci pour votre aide a biento


Piero

jeudi 9 juin 2005 à 10:08:17 | Re : HELP!!!! gérer les espace dans mon prog lors des questions

castelj

Bonjour,

tu peux utiliser un formatage un peu spécial qui permet de faire ça :

   scanf("%[^\n]",name);

ça va prendre ta chaîne de caractères non plus jusqu'au premier espace mais jusqu'au premier appui sur entrée
mais il y a sûrement d'autres moyens de le faire...


Bonne journée

jeudi 9 juin 2005 à 10:18:07 | Re : HELP!!!! gérer les espace dans mon prog lors des questions

Pamaury

#include <stdio.h>
#include <stdlib.h>

char name[256];
char computer[256];
char key[256];

int main(int argc,char **argv)
{
    printf("Veuillez saisir votre nom:\n");
    scanf("%[^\n]",name);
    fflush(stdin);
    printf("Veuillez saisir le nom de votre ordinateur:\n");
    scanf("%[^\n]",computer);
    fflush(stdin);
    printf("Veuillez saisir la clef produit de votre Windows XP:\n");
    scanf("%[^\n]",key);
    fflush(stdin);

    FILE *f=fopen("winnt.txt","a+");
    if(f==NULL)
       exit(1);
    fprintf(f,"%s\n",name);
    fprintf(f,"%s\n",computer);
    fprintf(f,"%s\n",key);
    fclose(f);
    // peut-être que ce n'est pas standard cette fonction
    rename("winnt.txt","winnt.sif");
   
    getchar();
   
    return 0;
}

// note que fflush(stdin) est nécessaire car sinon le buffer n'est pas vidé et il reste le retour à la ligne . Je sais que c'est pas très recommandé mais je vois pas d'autre moyen .

A m a u r y
jeudi 9 juin 2005 à 10:29:25 | Re : HELP!!!! gérer les espace dans mon prog lors des questions

Ethylotek

c'est pas mal mais si j'utilise ca  pour les 4 parametres le prog me demande le nom
et ensuit les autres questions défillent sans que je puisse entrer quelque chose !


Piero

jeudi 9 juin 2005 à 10:58:35 | Re : HELP!!!! gérer les espace dans mon prog lors des questions

buno

Administrateur CodeS-SourceS
Et si tu fais ça:

printf("Veuillez saisir votre prénom et votre nom:\n");
scanf("%s %s\n", prenom, nom);
strcpy(nomComplet, prenom);
strcat(nomComplet, ' ');
strcat(nomComplet, nom);

Buno
----------------------------------------
L'urgent est fait, l'impossible reste à faire. Pour les miracles, prévoir un délai...
jeudi 9 juin 2005 à 11:18:42 | Re : HELP!!!! gérer les espace dans mon prog lors des questions

Ethylotek

merci la méthode de Pamaury marche pour moi, elle me convient
a biento et merci a vous tous

Piero

jeudi 9 juin 2005 à 23:15:21 | Re : HELP!!!! gérer les espace dans mon prog lors des questions

ctx_man

eviter les scanf c'est a moitier pourri.
fait
gets(name); //a la place de scanf("%s", name);
Deja ca regle ton problem d'espace et c'est beacoup plus rapide d'execution.
ne pas oublier les
fflush(stdin);
avant chaque chaque gets pour etre sur de pas recuperer des conneries.
vendredi 10 juin 2005 à 07:13:56 | Re : HELP!!!! gérer les espace dans mon prog lors des questions

Pamaury

oui donc çà revient au même: le C n'est pas assez sécurisé, il y a des chance de faire un overflow .

A m a u r y
vendredi 10 juin 2005 à 08:49:09 | Re : HELP!!!! gérer les espace dans mon prog lors des questions

Ethylotek

merci ctx_man C'est mieu comme ca
pourrai me dire comment ecrire name entre guillemets dans mon fichier
car gets("name"); ne marche pas !


Piero

vendredi 10 juin 2005 à 09:27:37 | Re : HELP!!!! gérer les espace dans mon prog lors des questions

Ethylotek

c'est bon j'ai trouvé ne vous dérrangé pa
il faut mettre \ devant les "

Piero



Cette discussion est classée dans : prog, printf, espace, scanf, saisir


Répondre à ce message

Sujets en rapport avec ce message

pb programme très très simple [ par surfeurnet ] voila il s'agit d'un programme très simple qui ne fait pas d'erreurs à la compilation avec dev-cpp mais qui plante quand je l'exécute :#include char n Reprendre la main sur une erreur de SCANF [ par gollum ] voila : mon monceau de codec='n';printf("Entrer le coeff %d du terme %d \n",i,i);result = scanf("%f",&coef); while (result==0 && c=='n'){ printf("f Printf bizarre [ par x0s ] Bonjour Amis codeurs,J'ai un probleme avec cette petite fonction, je débute en c, merci de m'aider, voici le problème:#include /* Autor Débutant demande aide en C [ par juancho2786 ] Bonjour tout le monde. Je voulais vous demandez si mon code était correcte? et comment faire pour aller à la ligne après chaque enregistrement? Merci écriture de fichier [ par cobra176 ] je recherche le moyen d'écrire sur un fichier texte les lignes que j'ai recherche.  system("cls");printf("saisir le mot rechercher en respectant les m Langage C (saisie de données sur fichier) [ par doggy59115 ] Bonjour à tous ! Je bloque sur mon programme en langage C. Je suis novice !Je dois créer un programme où l'on rentre : nom, prénom, ville, adresse, co programme en C [ par graminach ] on a un pb pour la question 2b!le programme ne tourne pas en boucle et affiche meme en cas de valeur correcte erreurmerci d'avancehttp://www-ipst.u-st erreur [ par jekburn ] Bonjour, mon programme refuse de fonctionné, il commet une erreur mémoireMerci pour votre aide#include #include #include struct enreg{ char nom[30];& erreur d'application............please.help........... [ par jekburn ] #include #include #include struct enreg{ char nom[30]; char tel[10];}fiche; creation(){ clrscr(); FILE *fd; fd=fopen("fichier.dat"," Problème avec scanf() insovlable ?! [ par nollyflip ] Bonjour,J'ai un souci plutôt embêtant avec scanf()Je programme sous XP et devcppDès que j'appel scanf(), la console se ferme (ca plante quoi)J'ai fait


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales