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

Contribuez Discussion :

Tester si un fichier est vide


Sujet :

Contribuez

  1. #1
    Nouveau Candidat au Club
    Tester si un fichier est vide
    Bonjour à tous,

    Je suis amylton, nouveau sur ce site et je compte contribué au langage C en proposant des codes sources tant simple que complexe. Pour résumer, étant débutant en langage C, j'ai décidé, au lieu de chercher des exemples de projets à réaliser qui me prendraient tout mon temps, de faire un site qui regroupe des programmes en C que j'ai réalisé(le lien est ici http://codeplus.e-monsite.com/).

    Pour commencer, un petit programme qui teste si un fichier est vide.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    int testSiFichierVide(FILE* fichier)
    {
        int caracterePremier = 0;
     
        //On lit le prmeier caractère du fichier
        caracterePremier = fgetc(fichier);
        if(caracterePremier==EOF)
        {
            return 1;//le fichier est vide donc on retourne 1
        }
        return 0;//le fichier n'est pas vide donc on retourne 0
    }
     
    int main(int argc, char *argv[])
    {
        FILE* fichier = NULL;
     
        fichier = fopen("test.txt", "r");
     
        if (fichier != NULL)
        {
            if(testSiFichierVide(fichier)==1)
            {
                printf("Le fichier est vide");
            }
            else
            {
                printf("Le fichier n'est pas vide");
            }
            fclose(fichier);
        }
        else
        {
            // On affiche un message d'erreur si on veut
            printf("Impossible d'ouvrir le fichier test.txt");
        }
     
        return 0;
    }


    Qu'en pensez-vous?

  2. #2
    Modérateur

    Bonjour et bienvenue,

    Sans vouloir tuer une vocation dans l'œuf, cette méthode a l'intérêt de se cantonner au C standard strict, mais est peu efficace à l'usage et surtout, elle risque d'engendrer beaucoup d'effets de bord. Il vaut mieux, dans ce cas, faire de la programmation système en utilisant les fonctions de son O.S.

    On en discutait notamment ici : http://www.developpez.net/forums/d64...-fichier-vide/

    Bon courage pour la suite.

  3. #3
    Modérateur

    Salut !

    L'idée est bonne quand on débute : faire des petites fonctions simples mais efficaces pour se construire une "bibliothèque" pour ses futurs programmes et pour s'entrainer. Sauf que souvent quand on commence (et même après en fait...), pas facile de faire des codes robustes, portables et complets. J'ai regardé un peu ton site, on voit des choses que font les débutants (comme des scanf pour récupérer les choix des utilisateurs : pratique et simple mais pas du tout robuste). N'hésite pas avec le temps à compléter et modifier tes sources et demander des conseils.

    Bon courage

###raw>template_hook.ano_emploi###