IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Comment lire en C une chaine de caractères avec des espaces


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2002
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 2
    Points : 4
    Points
    4
    Par défaut Comment lire en C une chaine de caractères avec des espaces
    au clavier et qui fait au plus 64 caractées? J'ai essayé char chaine[65]; puis scanf("%s",chaine); mais scanf s'arrete au premier espace rencontré, pour l'instant, j'utilise gets(chaine) , ms gets ne gere pas le debordement et je voudrais qqch de plus propre ...

    Merci d'avance

    Alain

  2. #2
    Membre éprouvé
    Avatar de jérôme
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 591
    Points : 1 071
    Points
    1 071
    Par défaut
    déjà répondu plusieurs fois mais bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%[^\n]",phrase) ;
    par exemple

  3. #3
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Tu peux aussi utiliser fgets a la place de gets, lui gere un nombre maximal de caractere a lire :

    char *fgets(char *s, int n, FILE *stream);

    Pour lire sur le flux d'entree standard au plus 64 caracteres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fgets(chaine, 65, STDIN);    // 65 car fgets lorsqu'il a lu n-1 caracteres ou 
                                             // le caractere new line

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Completer une chaine de caractère avec des 0 à gauche ?
    Par lolafrite dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 18/02/2011, 08h57
  2. récupérer une chaine de caractères avec des espaces
    Par doubiste_59 dans le forum Langage
    Réponses: 4
    Dernier message: 20/07/2010, 15h17
  3. Remplir une chaine de caractères avec des 0 dans un SELECT
    Par phamdac dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/08/2009, 23h04
  4. Chaine de caractères avec des espaces
    Par totoff80 dans le forum Débuter
    Réponses: 18
    Dernier message: 12/04/2008, 16h12
  5. Comment concaténer une chaine de caractères avec un espace ?
    Par blanchonvincent dans le forum MATLAB
    Réponses: 6
    Dernier message: 07/04/2007, 21h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo