begin process at 2010 02 09 23:59:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

Pb avec fread et fwrite


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb avec fread et fwrite

lundi 3 avril 2006 à 19:34:17 | Pb avec fread et fwrite

Cyr62110

Boujour. Voila le probléme. Lorsque j'essaye d'ecrire des donnés avec fwrite(), Windows marque "Erreur, Windows ...".
Voici le bout de code :
char data[] = "C:/Ulm/Data.txt";

/*Déclaration des fonction*/

main ()
{
     if (ux = fopen (data, "ab") == NULL)
     {
            printf ("\nSysteme non operationnelle.");
            printf ("\nFin du logiciel : Data.txt inexistant");
            sleep (100);
            exit (1);
     }
     else
     {
         printf ("\nSysteme opperationnelle");
         sleep (1000);
     }
     if (code = fread (&code,sizeof(int),1, ux)  != 1)
     {
                   printf ("\nChargement");
     }
     if (code = fwrite (&code, sizeof(int), 1, ux) != 1)
     {
                printf ("\nEchec");
     }

Quelqu'un pourait m'aider, svp.

lundi 3 avril 2006 à 19:49:28 | Re : Pb avec fread et fwrite

SAKingdom

Membre Club
T'es if pourrais cosé problème essais

ux = fopen (data, "ab"));

if (ux  == NULL)
     {
            printf ("\nSysteme non operationnelle.");
            printf ("\nFin du logiciel : Data.txt inexistant");
            sleep (100);
            exit (1);
     }
     else
     {
         printf ("\nSysteme opperationnelle");
         sleep (1000);
     }

    code = fread (&code,sizeof(int),1, ux);

     if (code  != 1)
     {
                   printf ("\nChargement");
     }

     code = fwrite (&code, sizeof(int), 1, ux);
     if (code != 1)
     {
                printf ("\nEchec");
     }

___________________________________________
Les plus grands esprits trouvent toujours une solution

lundi 3 avril 2006 à 21:54:56 | Re : Pb avec fread et fwrite

stenka

Voici un bel exemple commenté de lecture/écriture dans des fichiers avec fread et fwrite... (Dev-Cpp)

#include <stdio.h>  

/*  DECLARATIONS DES VARIABLES  */

char fDep[260];      /* adresse et nom du fichier que l'on veut copier */
char fArr[260];      /* adresse et nom du fichier dans lequel on va faire
                        la copie */
char fTmp[260];      /* chaîne de caractère temporaire */
FILE *FDEP;          /* pointeur de type FILE */
FILE *FARR;          /* pointeur de type FILE */
char ch[1];          /* tableau temporaire de 1 caractère */
int i;               /* variable temporaire */

/*  LA FONCTION APPELEE AU DEMARRAGE DE L'EXECUTABLE  */
int main()
{
    /* FICHIER QU'IL FAUT COPIER */
    printf("Taper le nom avec extension du fichier que vous desirez copier\n");
    printf("Ce fichier doit se trouver dans le repertoire de l'executable\n");
    scanf("%s",fTmp);       /* saisie du nom du fichier à lire */
    strcpy(fDep,".\\");     /* début de l'adresse relative */
    strcat(fDep,fTmp);      /* ajout du nom à l'adresse relative */

    /* FICHIER DANS LEQUEL ON VA ECRIRE */
    strcpy(fArr,".\\");     /* début de l'adresse relative */
    strcat(fArr,"fcopy");   /* ajout de fcopy avant le nom du fichier */
    strcat(fArr,fTmp);      /* ajout du nom du fichier */
   
    /* OUVERTURE DES DEUX FICHIERS */
    FDEP = fopen(fDep,"r"); /* ouverture en lecture seule de fDep */
    FARR = fopen(fArr,"w"); /* ouverture en écriture seule de fArr */
   
    do
    {
        i = fread(ch,1,1,FDEP);  /* lire 1 caractère du fichier */
        if (i > 0)               /* si 1 caractère à été lu */
            fwrite(ch,1,1,FARR); /* écrire ce caractère dans le nouveau
                                    fichier */
    }while (i > 0);              /* tant qu'on lit 1 caractère on retourne à
                                    i = fread(ch,1,1,FDEP); */
   
    close(FDEP);
    close(FARR);
   
    system("pause"); /* affiche "Appuier sur une touche pour continuer ..." */
    return 0;        /* le programme se termine correctement */
}   

stenka

mardi 4 avril 2006 à 18:50:10 | Re : Pb avec fread et fwrite

Cyr62110

Merci à Stenka, mais ça arrenge mon probleme qu'a moitié.
Car dès que j'essaye de stoker une donnée quand celle-ci est relue elle est de valeur 1.
Vérifier par vous même :
#include <stdio.h>

int code = 35554233;
FILE *verif;
int a;

main ()
{
     char chemin [80];
    printf ("\nEntrez le chemin ou est installe UX : ");
    scanf ("%s", &chemin);
    strcat (chemin, "data.txt");
    verif =  fopen (chemin, "wb");
    if (verif == NULL)
    {
              printf ("\nSystéme non opérationelle");
              printf ("\nFin de lancement");
              perror ("Erreur systeme :");
              sleep (1000);
              exit (1);
    }
    else
    {
        fprintf (stderr, "\nChargement.");
        for (a = 1; a < 20; a++)
        {
            sleep (50);
            printf (".");
        }
    }
    code = fwrite (&code,2,1,verif);
    if (code == 0)
    {
             printf ("\nErreur lors de la lecture du code");
             perror("Erreur systeme : ");
             sleep (1000);
             exit (1);
    }
    else
    {
        printf ("\nEnregistrement reussi");
    }
    printf ("\nLe code est %d", code);
    code = fread (&code,2,1,verif);
    if (code > 0)
    {
             printf ("\nErreur lors de la lecture du code");
             perror("Erreur systeme : ");
             sleep (1000);
             exit (1);
    }
    printf ("\nLe code est %d apres la reouverture du fichier", code);
}
P.S:Ux est le logiciel sur lequel je travaille.
Si quelqu'un pourrait m'aider, je lui en serait reconnaissant.

mardi 4 avril 2006 à 18:50:12 | Re : Pb avec fread et fwrite

Cyr62110

Merci à Stenka, mais ça arrenge mon probleme qu'a moitié.
Car dès que j'essaye de stoker une donnée quand celle-ci est relue elle est de valeur 1.
Vérifier par vous même :
#include <stdio.h>

int code = 35554233;
FILE *verif;
int a;

main ()
{
     char chemin [80];
    printf ("\nEntrez le chemin ou est installe UX : ");
    scanf ("%s", &chemin);
    strcat (chemin, "data.txt");
    verif =  fopen (chemin, "wb");
    if (verif == NULL)
    {
              printf ("\nSystéme non opérationelle");
              printf ("\nFin de lancement");
              perror ("Erreur systeme :");
              sleep (1000);
              exit (1);
    }
    else
    {
        fprintf (stderr, "\nChargement.");
        for (a = 1; a < 20; a++)
        {
            sleep (50);
            printf (".");
        }
    }
    code = fwrite (&code,2,1,verif);
    if (code == 0)
    {
             printf ("\nErreur lors de la lecture du code");
             perror("Erreur systeme : ");
             sleep (1000);
             exit (1);
    }
    else
    {
        printf ("\nEnregistrement reussi");
    }
    printf ("\nLe code est %d", code);
    code = fread (&code,2,1,verif);
    if (code > 0)
    {
             printf ("\nErreur lors de la lecture du code");
             perror("Erreur systeme : ");
             sleep (1000);
             exit (1);
    }
    printf ("\nLe code est %d apres la reouverture du fichier", code);
}
P.S:Ux est le logiciel sur lequel je travaille.
Si quelqu'un pourrait m'aider, je lui en serait reconnaissant.

mercredi 5 avril 2006 à 11:46:09 | Re : Pb avec fread et fwrite

stenka

Réponse acceptée !
C'est on ne peut plus normal... Lorsque qu'on fait code = fwrite (...); ou code = fread (...); on affecte le résultat des fonctions à code. Ce résultat vaut probablement le nombre de caractères écrits par fwrite ou 0 en cas d'erreur; il faut voir ça dans la doc de ces f°. Mais l'erreur doit venir de ces affectations qui modifient la valeur de code dès l'appel à fwrite (&code,2,1,verif); Une autre variable peut remplacer code pour cette tâche!

sten
ka


Cette discussion est classée dans : code, data, printf, fwrite, fread


Répondre à ce message

Sujets en rapport avec ce message

Pb avec les printf [ par PierScher ] voici le code pour afficher un pendu :printf(" ++++++++++++++++++++++++\n");printf(" API Windows NT [ par Nebula ] Bonsoir !J'essaie de récupérer le propriétaire d'un fichier sur un volume NTFS, mais le système me retourne toujours un échec.... J'utilise le code su besoin d'aide : liste chainée [ par SemBy ] salutjutilse une liste chainée pour pouvoir traité une structure.declaration de ma structure :struct etu{ char nom[25]; char prenom[25]; printf de #define [ par Manson ] Bonjour,voila j'ai un #define qui se presente sous cette forme :#define FILEVER 1,2,3,4Je ne peux absoluement pas changer son format.< CObject [ par ifren ] salutj'ai un petit probleme,bon j'ai une classe data qui herite de la classe CObject, jusque la normalj'ai un tel codeData::Data(): // Copie de l'obje Probleme utilisation de fread [ par Trinita16 ] Bonjour, Voila le source d'un programme qui doit lire un fichier binaire. Mais je ne comprends pas l'executable systematiquement...Je pense qu'il y a Petit probleme de code en C sur Linux !! [ par UncleShu ] Je voudrais créer un fichier dans le réperoire personnel d'un utilisateur mais mon code ne marche pas !!#include #include #include #define DIR $HOM Unsigned __int64 et PRINTF [ par BeLZeL ] Ce message n'attend pas de réponse. Il est là à titre indicatif. Il aidera les gens qui tomberont dessus via un moteur de recherche.En effet, j'ai un Cryptage de Jules César [ par thedivxboy ] Pourquoi ce code plante quand je mets un scanf ?Et pourquoi lorsque je retire 27 au résultat crypté si il dépasse l'alphabet, cela m'affiche des carac SOS manque d'inspiration [ par graall ] J'ai besoin de faire un petit programme (en mode console) qui demande à l'utilisateur de saisir le nom d'un fichier et ensuite, qui vérifie si ce fich


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales