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 :

Descripteur de fichier


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Par défaut Descripteur de fichier
    Bonjour,

    Dites ,je commence à en avoir plus qu'assez de ces codes correctes mal compilé moi ...

    voilà le code :

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    /* Programme : Coder.c
     * Syntaxe   : coder [nomfichier] [action]
     *         nomfichier est le nom du fichier pour les données codées
     *         action est égale à D pour coder ,ou n'importe quel
     *         autre caractère pour coder
     *-----------------------------------------------------------------*/
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    #define E 0X82
     
    int encode_character(int ch,int val);
    int decode_character(int ch,int val);
    int main (int argc,char *argv[]);
     
    int main (int argc,char *argv[])
    {
    	FILE *fh;                   /* Descripteur de fichier */
    	auto int rv =1;             /* valeur renvoyée */
    	auto int ch =0;             /* variable pour stocker un caractère */
    	auto unsigned int ctr =0;   /* compteur */
    	auto int val =5;            /* valeur pour coder avec */
    	auto char buffer[257];      /* le buffer */
     
    	if (argc != 3)
    	{
    		printf("\nErreur: nombre de parametres incorrecte ...");
    		printf("\n\nSyntaxe :\n  %s nomfichiers action",argv[0]);
    		printf("\n\n où :");
    		printf("\n           nomfichier = nomdu fichier à coder ");
    		printf("ou a d%ccoder",E);
    		printf("\n           action = D pour décoder ou C pour coder\n\n");
    		rv =-1;
    	}
    	else
    	if (( argv[0] == "D") || (argv [0] == "d" )) /* decodage */
    	{	fh = fopen(argv[1],"r");                 /* ouverture du fichier */
    		if (fh <= 0)                             /* contrôle */
    		{
    			printf("\n\nErreur d'ouverture du fichier ...");
    			rv = -2;                             /* valeur de l'erreur renvoyée */
    		}
    		else
    		{
    			ch = getc(fh);                       /* lecture d'un caractère */
    			while ( !feof (fh) )                 /* Fin du fichier? */
    			{
    				ch = decode_character(ch,val);
    				putchar(ch);                     /* affichage du caractère */
    				ch = getc(fh);
    			}
     
    			fclose(fh);
    			printf("\n\nFichier d%ccod%c et affich%c",E,E,E);
    		}
    	}
    	else  /* Codage dans un fichier */
    	{
    		fh = fopen(argv[1],"w");
    		if(fh <= 0)
    		{
    			printf("\n\nErreur pendant la cr%cation du fichier ...",E);
    			rv =-3;                              /* valeur renvoyée */
    		}
    		else
    		{
    			printf("\n\nEntrer le text à coder.");
    			printf("Entrer une ligne vide pour terminer.\n\n");
     
    			while (gets(buffer) != NULL)
    			{
    				if(buffer[0] == 0)
    					break;
     
    				for(ctr =0;ctr < strlen(buffer);ctr++)
    				{
    					ch = encode_character(buffer[ctr],val);
    					ch = fputc(ch,fh);          /* ecriture du fichier */
    				}
    			}
    			printf("\n\nMessage cod%c et enregistr%c.\n",E,E);
    			fclose(fh);
    		}
    	}
    	return (rv);
    }
     
    int encode_character(int ch,int val)
    {
    	ch += val;
    	return (ch);
    }
     
    int decode_character(int ch,int val)
    {
    	ch -= val;
    	return (ch);
    }
    et la ligne if(fh <= 0) ne passe pas ,il me dit que les types sont illégales et blablabla ...

    qqun voit ce que cette erreur incompréhensible vient faire là ?

    Merci

    Zazeglu

  2. #2
    Membre expérimenté Avatar de Driden
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Par défaut
    ça serait pas plutot

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Essaye avec

    voire même, puisque fh est un pointeur :

    fh est un pointeur, un test d'inégalité ne sert donc à rien. Ce qu'il faut vérifier c'est si ta fonction a réussi, càd que le pointeur renvoyé n'est pas nul, ce que fait le code ci-dessus.
    A noter que ça compile en C++, ceci expliquant peut-être cela.

    Happy you !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Par défaut
    ben non c'est écrit comme cela dans le livre ,maintenat ils se sont peut être trompé moi j'en sait rien (je ne suis pas ensé comprendre tout le code ,il est donné en exemple dans le bouqin,je n'ai pas encore vu la gestion des fichiers)

    Merci

    Zazeglu

  5. #5
    Membre expérimenté Avatar de Driden
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Par défaut
    C'est quoi ton bouquin :

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Par défaut
    ouioui c'est le mien ,un bouqin sur C éditer chez campuspresse par Peter Atken et Bradley Jones ,mais je vais essayer comme Loulou24 m'a dit ...

    non mais ,il font des fautes dans les bouqins mnt

    Merci

    Zazeglu

  7. #7
    Membre expérimenté Avatar de Driden
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Par défaut
    T'as regardé si il y avait pas un errata sur leur site internet.
    Sinon tu devrais plutot bosser le K&R

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Par défaut
    K&R ?

    Je vais voir ,ça marche comme loulou24 ma dit ,mais de tout façon il n'arrive pas à créé le fichier (faut croire que la déscripteur est tjrs égale à NULL) .

    Merci

    Zazeglu

  9. #9
    Membre expérimenté Avatar de Driden
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Par défaut
    Citation Envoyé par Zazeglu
    K&R ?
    Le langage C par Brian W. Kernighan & Denis M. Ritchie
    Les concepteurs du langage C.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Par défaut
    Ah oui ,ça va mais faut que je mette des chemins d'acces genre

    C:\fichier.txt

    si je met des truc plus longs comme :

    C:\windows\fichier.txt

    ben cela ne focntionne plus

    Merci

    Zazeglu

  11. #11
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Petite précision : sous VC6 la ligne if (fh <= 0) ne génère ni erreur ni warning.
    Je ne connais pas assez les compilos ni le C en lui-même pour dire, mais prudence quand même quant aux résultats produits par différents compilateurs. Quel est le tien ?

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Par défaut
    Je connait les concepteurs du langage C (j'ai beau pas être doué jsui bien passioné )

    Mais tu veux dire que le code ne fait pas partie de la norme ANSI ?

    Merci

    Zazeglu

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Par défaut
    Ben moi j'utlise icc wedit win32 ,mais j'ai beau ne pas être un fervant défenseur de M$ ,je crois que pour les logiciels ... j'aurait dut illico commencer avec VC++

    Merci

    Zazeglu

  14. #14
    Membre expérimenté Avatar de Driden
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Par défaut
    Citation Envoyé par Zazeglu
    Ben moi j'utlise icc wedit win32 ,mais j'ai beau ne pas être un fervant défenseur de M$ ,je crois que pour les logiciels ... j'aurait dut illico commencer avec VC++
    Commences par apprendre les bases du langage avant de vouloir utiliser un truc comme VC++.
    Surtout que t'as surement pas le besoin d'une usine comme ça, de plus vu le prix ça vaut pas le coup.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Par défaut
    ?? Mais c'est ce que je fait non ?apprendre les base ?j'ai appris les pointeurs ,les variables sous tout leurs angles ,les fonctions etc ... et je continue ;

    Sinon que voulait tu dire par "bosser K&R" ?

    Merci

    Zazeglu

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Par défaut
    Ca va j'ai compris ,"K&R" => langage C ,LIVRE écrit par k&r ,

    Mais celui ci n'est pas bon ??

    Merci

    Zazeglu

  17. #17
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Le K&R est je pense le bouqin a bosser pour maitriser le C. A ne pas louper en tout cas

  18. #18
    Membre expérimenté Avatar de Driden
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Par défaut
    Citation Envoyé par Loulou24
    Le K&R est je pense le bouqin a bosser pour maitriser le C. A ne pas louper en tout cas
    Et qui sert toujours, à avoir sous la main

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 134
    Par défaut
    humm un peu tard pour y penser malheureusement ,j'ai déja choisit mon livre de référence moi ...bah ,je ferait avec

    Merci

    Zazeglu

  20. #20
    Membre expérimenté Avatar de Driden
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Par défaut
    Rien n'empeche d'avoir plusieurs livres, la diversité est une bonne chose.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. ecrire un entier dans un descripteur de fichier
    Par nicoesenlamierda dans le forum Linux
    Réponses: 17
    Dernier message: 12/09/2008, 16h09
  2. return d'un descripteur de fichier : FILE *
    Par awalter1 dans le forum C
    Réponses: 3
    Dernier message: 04/09/2008, 11h59
  3. Message "mauvais descripteur de fichier"
    Par robux dans le forum Ubuntu
    Réponses: 1
    Dernier message: 06/08/2008, 11h25
  4. Réponses: 5
    Dernier message: 07/03/2008, 16h20
  5. Probleme descripteur de fichier
    Par Blo0d4x3 dans le forum C
    Réponses: 12
    Dernier message: 17/05/2007, 02h10

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