Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec "fgetc"

Sujet résolu
    20 janvier 2021 à 19:10:48

    Bonjour,

    j’apprends le C (lire et écrire dans un fichier) mais quand j'écris ce code (voir ci-dessous), la console ne s'affiche pas !

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    	FILE* fichier = NULL;
    	int caractere_actuelle = 0;
    	fichier = fopen("pense bête.txt", "r");
    
    	if (fichier != NULL)
    	{
    		do
    		{
    			caractere_actuelle = fgetc(fichier);
    			printf("%c", caractere_actuelle);
    			
    		}while(caractere_actuelle != EOF);
    
    		fclose(fichier);
    	}
    }

    Sublime Text affiche simplement le message habituel :

    [Finished in 0.5s]

    Je ne comprend pas ! ...

    Merci d'avance !

    • Partager sur Facebook
    • Partager sur Twitter
      20 janvier 2021 à 19:31:19

      Es-tu bien sur que ton fichier a été ouvert ? Car dans le cas contraire ton code n'affiche rien !

      Tu devrais afficher un message en cas d'erreur d'ouverture pour confirmer ou infirmer !

      -
      Edité par rouloude 20 janvier 2021 à 19:32:01

      • Partager sur Facebook
      • Partager sur Twitter
        20 janvier 2021 à 20:26:18

        Sans nul doute ton fichier n'est pas chargé, ou alors il affiche des lignes vides
        • Partager sur Facebook
        • Partager sur Twitter
          21 janvier 2021 à 4:03:25

          Évites les noms de fichier avec des accents ou des espaces.
          Pour afficher l'erreur comme le suggère rouloude, je suggère d'utiliser la fonction perror() avec le header errno.h
          if(fichier==NULL) {
           perror("endroit_ou_je_me_trouve");   // je donne ici le nom de la fonction où j'ai appelé fopen()
           printf("Fichier: '%s'\n", nom_du_fichier);   // je suggère de placer le nom du fichier dans une chaîne, comme ça tu n'auras pas besoin de la répéter.
           exit(1);   // requière stdlib.h
          }
          ...
          • Partager sur Facebook
          • Partager sur Twitter

          Le Tout est souvent plus grand que la somme de ses parties.

            22 janvier 2021 à 22:28:53

            je pense avoir trouvé la réponse : je crois ne pas avoir mis mon fichier "test.txt" dans l’exécutable...

            Mais quel "exe" ? Comment le mettre à cet emplacement ?

            Désolé... Je ne suis pas très doué !

            -
            Edité par _sky_ 22 janvier 2021 à 22:38:47

            • Partager sur Facebook
            • Partager sur Twitter
              22 janvier 2021 à 22:41:46

              Tu veux dire : Dans le même répertoire que ton exécutable non ?
              • Partager sur Facebook
              • Partager sur Twitter

              Problème avec "fgetc"

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown