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 :

problème dans avec la fonction fgets


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut problème dans avec la fonction fgets
    Salut tout le monde, j'ai écris le code ci dessous et à chaque fois le résultat donné par mon compiler m'insère des retour chariot quand je veux voir mon fichier ".txt" alors qu'il n'y avait rien avant dans ce fichier. Comment faire pour ne pas avoir de retour chariot et seulement ma chaine de caractère ?

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    #include <stdio.h>
    #include <stdlib.h>
    #include "headers.h"
     
     
    int main(int argc, char *argv[])
    {
        FILE* fichier = NULL;
        int caractereActuel = 0;
     
        fichier = fopen("test.txt", "r+");
     
        if (fichier != NULL)
        {
            fprintf(fichier, "Tu t'attendais à quoi ?");
            do
            {
                caractereActuel = fgetc(fichier); // On lit le caractère
                printf("%c", caractereActuel); // On l'affiche
            } while (caractereActuel != EOF); // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
     
            fclose(fichier);
        }
        else
        {
            printf("Erreur");
            perror("fopen");
        }
     
        return 0;
    }

  2. #2
    Membre averti
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    Par défaut
    salut,
    Qu'appel tu retour chariot? Pourquoi ne pas faire un petit afficher caractereActuel si différent de chariot?
    Autre option si tu veux que la lecture s'arrête à ton chariot pourquoi ne pas le mettre dans ton code? (pourquoi ne pas mettre l'interruption de lecture à chariot).
    3e point la do while est-elle la meilleur boucle? Sachant que si ton fichier est vide le code va quand même essayer de lire dans ton fichier pour afficher un caractère.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Oups je voulais parler du retour à la ligne. Quand je compile ce code et que je veux lire ce que je note avec fprintf, ma chaine de caractère apparait suivi de pas mal de retour à la ligne ou d'espace (je sais pas trop) qui prenne du coup de la place inutilement sur ma mémoire vive et sont gênant pour la lecture de mon résultat dans la fenêtre de compilation. Je ne comprend pas à quoi ils sont dus. Ils arrivent automatiquement et se remettent même après que je les supprime dans mon ".txt". Ah oui c'est vrai pour la do while j'ai changé ça, merci

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    Pourquoi parles-tu de fgets dans le titre alors que tu utilises fgetc ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Tu printes, tu lis. Tu penses que tu vas lire quoi ? Il ne te manque pas un rewind() ?

    Accessoirement, tu printes EOF quand tu le rencontres.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup je n'avais pas encore travaillé sur la fonction rewind mais maintenant ça marche grace à ça ! Merci à tous

  7. #7
    Membre averti
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Pourquoi parles-tu de fgets dans le titre alors que tu utilises fgetc ?
    Bien vu je n'y avais même pas fais attention :p

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

Discussions similaires

  1. [AC-2010] Problème inattendu avec la fonction Choisir() dans QBE
    Par sellig60 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 06/08/2014, 13h27
  2. Réponses: 35
    Dernier message: 19/09/2009, 01h08
  3. bug avec la fonction fgets
    Par sebatlante dans le forum C
    Réponses: 5
    Dernier message: 07/06/2009, 13h50
  4. [MySQL] Problème avec la fonction fgets et les retours chariot
    Par didoulive dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/02/2008, 19h08
  5. Réponses: 20
    Dernier message: 25/09/2005, 15h07

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