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 :

lire chaine type string


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 145
    Points : 102
    Points
    102
    Par défaut lire chaine type string
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    FILE *fichier;
    string verbe;
    
    int main()
    {
        //system("PAUSE");
        //return EXIT_SUCCESS;
        //printf("Que Voulez-vous faire? \n 1 - Ajouter un verbe irregulier \n 2 - Modifier un verbe irregulier \n 3 - Passer un test \n %d",select);
        //if (select==1)
        //{
        //}
          /* création et ouverture du fichier */
            fichier=fopen("fichier.txt" , "wt+");
            /* si echec de l'ouverture*/
               if (fichier==NULL)
               {
                              printf("Impossible de creer le fichier\n");
               }
            printf("Entrer la phrase\n");
        //scanf("%s",&verbe); //recuperer la ligne tapée "coucou c'est nous" par ex//
            fprintf(fichier, "%s", verbe);
            return 0;
    a la place de scanf qui ne marche pas, quelle fonction faut il utiliser svp ? merci d'avance

  2. #2
    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
    fgets() qui permet de lire une ligne

  3. #3
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par deathsurfer
    a la place de scanf qui ne marche pas, quelle fonction faut il utiliser svp ? merci d'avance
    Bonjour,

    Tu peux utiliser fgets.
    Et jeter un oeil ici : http://emmanuel-delahaye.developpez.com/inputs.htm

    Edit: Ah, encore grillé !

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par deathsurfer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FILE *fichier;
    string verbe;
    Y'a pas de type string en C.
    string est un mot réservé pour les extensions futures du langage...

    http://emmanuel-delahaye.developpez....htm#id_reserve

  5. #5
    Membre régulier Avatar de elghadi_mohamed
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2005
    Messages : 227
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par gl
    fgets() qui permet de lire une ligne
    n'oublie pas stdin comme FILE* et un espace memoire pour stocker "un tableau de char "!!!!

  6. #6
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par elghadi_mohamed
    n'oublie pas stdin comme FILE* et un espace memoire pour stocker "un tableau de char "!!!!

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 145
    Points : 102
    Points
    102
    Par défaut rectification
    En fait je ne souhaite pas lire une ligne dans un fichier mais bien une phrase que l'utilisateur aura tapée et qui sera ecrite dans le fichier texte puisque scanf s'arrete lorsque qu'il y a un espace...Merci

  8. #8
    Membre averti
    Profil pro
    Responsable technique
    Inscrit en
    Février 2006
    Messages
    363
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable technique

    Informations forums :
    Inscription : Février 2006
    Messages : 363
    Points : 353
    Points
    353
    Par défaut
    Citation Envoyé par deathsurfer
    En fait je ne souhaite pas lire une ligne dans un fichier mais bien une phrase que l'utilisateur aura tapée et qui sera ecrite dans le fichier texte puisque scanf s'arrete lorsque qu'il y a un espace...Merci
    Ta chaine verbe met la en char.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define NB_CAR_MAX 80
    char verbe[NB_CAR_MAX]
    et ensuite à la place de ton scanf tu fais un fgets.

  9. #9
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par deathsurfer
    En fait je ne souhaite pas lire une ligne dans un fichier mais bien une phrase que l'utilisateur aura tapée et qui sera ecrite dans le fichier texte puisque scanf s'arrete lorsque qu'il y a un espace...Merci
    • Un fichier texte est une succession de lignes.
    • Une ligne est une séquence de caractères terminée par un \n.
    • fgets() est conçue pour lire une ligne dans un flux texte entrant.
    • stdin est un flux.

  10. #10
    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
    Citation Envoyé par deathsurfer
    En fait je ne souhaite pas lire une ligne dans un fichier mais bien une phrase que l'utilisateur aura tapée
    Ca revient strictement au meme. stdin est un flux comme un autre et une saisie validee avec la touche entree (donc la phrase saisie dans ton cas) est une ligne.
    En utilisant scanf() comme dans ton premier exemple, il est possible de ne pas s'arreter sur tout les blancs mais uniquement sur les fins de ligne en utilisant %[^\n] a la place de %s, mais il faut egalement rajouter une limitation sur la taille de la saisie (et on ne pourra pas alors savoir si tout a bien ete lue), verifier le nombre de conversion reussie, etc... ce qui est bien plus compliquee a mettre en place de maniere satisfaisante qu'un simple fgets() suivi d'une verification de la presence de la fin de ligne.

  11. #11
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Pour te guider, fait un tour ici : http://emmanuel-delahaye.developpez.com/inputs.htm

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

Discussions similaires

  1. Affecter une chaine type SQL à un String
    Par obtuli31 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 31/05/2011, 10h24
  2. Réponses: 3
    Dernier message: 10/09/2009, 16h24
  3. Réponses: 2
    Dernier message: 27/05/2009, 12h47
  4. Probléme C++ - Chaine de type String
    Par allan02390 dans le forum C++
    Réponses: 2
    Dernier message: 18/12/2007, 11h21

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