Précédent   Forum du club des développeurs et IT Pro > C et C++ > C > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, FAQ, sources, et autres ressources pour la rubrique C.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/07/2012, 22h30   #1
Amylton
Invité de passage
 
Inscription : juillet 2012
Messages : 1
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2012
Messages : 1
Points : 0
Points : 0
Par défaut 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 :
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?
Amylton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2012, 23h10   #2
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 610
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 610
Points : 11 065
Points : 11 065
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.
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/07/2012, 09h13   #3
Bktero
Expert Confirmé Sénior
 
Avatar de Bktero
 
Ingénieur systèmes embarqués
Inscription : juin 2009
Messages : 1 694
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur systèmes embarqués
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2009
Messages : 1 694
Points : 4 130
Points : 4 130
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
__________________
Si Code::Blocks vous dit undefined reference to 'socket@12', cela signifie que vous avez un problème d'édition des liens. Allez dans Projects / Build Options / Linker Settings / Add et renseigner ici les .a qui vont bien. Exemple pour les sockets : C:\Program Files\CodeBlocks\MinGW\lib\libws2_32.a

Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^

Pour vos problèmes d'embarqué, utilisez le forum dédié !
Bktero est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h06.


 
 
 
 
Partenaires

Hébergement Web