Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ouverture d'un fichier.txt (fopen et scanf)

    2 février 2023 à 17:09:49

    Bonjour à tous ! 

    Je suis débutante en C et je me retrouve avec un problème d'ouverture de fichier si vous voulez bien m'aider svp.

    Je souhaite afficher l'âge entré par l'utilisateur dans un fichier.txt ici nommé bcd.txt.

    Aucune erreur m'est indiquée à la compilation, mais rien ne s'affiche sur le cmd et le fichier.txt reste donc inchangé. Aucun problème de localisation, tout est dans le même dossier et le fichier.txt a le bon nom). J'ai essayé d'autres codes proposés dans des tutoriels pour la même consigne, et même les autres codes ne fonctionnent pas, rien n'est affiché sur l'invite de commandes et le fichier.txt reste inchangé.

    #include <stdio.h>
    #include <stdlib.h>
    
    
    int main(int argc, char *argv[])
    {
    	FILE* fp = fopen("bcd.txt", "r+");
    	int age;
    
    	if (fp != NULL)
    	{
    		printf("Entrez votre age\n");
    		scanf("%d",&age);
    
    		fprintf(fp, "Le mot de passe est &d\n", age);
    		fclose(fp);
    	}
    	else
    	{
    		printf("Erreur quelque part\n");
    	}
    	
    	return 0;
    }


    Merci de votre aide

    • Partager sur Facebook
    • Partager sur Twitter
      2 février 2023 à 17:17:08

      Bonjour ! Quand tu dis que tout est dans le même dossier, c'est y compris l'exécutable ? Et tu le lances depuis la console et depuis ce dossier ? (Pas depuis un IDE ?)

      -
      Edité par robun 2 février 2023 à 17:20:15

      • Partager sur Facebook
      • Partager sur Twitter
        2 février 2023 à 17:41:02

                fprintf(fp, "Le mot de passe est &d\n", age);

        Attention le descripteur de format pour un entier c'est %d et non pas &d !

        Avec le mode r+ le fichier doit exister. si tu veux juste écrire dans un nouveau fichier utilise le mode w

        Sirine75 a écrit:

        Aucune erreur m'est indiquée à la compilation, mais rien ne s'affiche sur le cmd et le fichier.txt reste donc inchangé. 

        Rien ne s'affiche ? même pas "Entrez votre age" ou "Erreur quelque part" ?



        -
        Edité par rouIoude 2 février 2023 à 17:43:32

        • Partager sur Facebook
        • Partager sur Twitter
        ...
          2 février 2023 à 17:41:35

          Hello,

          Le format pour afficher un int, c'est %d, pas &d !

          -
          Edité par edgarjacobs 2 février 2023 à 17:42:06

          • Partager sur Facebook
          • Partager sur Twitter

          On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

            2 février 2023 à 18:08:47

            Est-ce que ton fichier bcd.txt apparaît dans le dossier après exécution?
            Fais  dir /b bcd.txt  dans cmd
            Puis  type bcd.txt  s'il existe

            -

            S'il y a erreur, tu fais:
                    printf("Erreur quelque part\n");
            cela ne t'aidera pas beaucoup. Fais plutôt:
                    perror("fopen");
                    printf("File '%s'\n", "bcd.txt");

            Aussi, tu pourrais mettre le nom du fichier dans une variable comme suit:

                char name[] = "bcd.txt";

            et tu mets cette variable à la place du nom où c'est nécessaire de le mentionner comme dans le fopen et le printf de la fin.

            -
            Edité par PierrotLeFou 2 février 2023 à 18:29:25

            • Partager sur Facebook
            • Partager sur Twitter

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

            Ouverture d'un fichier.txt (fopen et scanf)

            × 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