begin process at 2012 05 29 06:13:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

fgets pose probleme


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

fgets pose probleme

mardi 13 mars 2007 à 10:54:44 | fgets pose probleme

Stephworlds

Salut à tous
Je doit lire des données dans un fichier et écrire ce qui  est lu dans un autre  fichier. A la compilation ça marche nikel mais quand je la nce le programme :
Exception non gérée à 0x00402ee5 dans projet.exe : 0xC0000005:
Violation d'accès lors de la lecture de l'emplacement 0x00000068.
J'ai décomposé tous le programme et je me suis rendu compte que c'est le fgets qui pose probleme, mais je sais pas pourquoi.

voici le programme :

#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <conio.h>

void main (void)
{ // déclaration pour la lecture ecriture création des fichier textes

    FILE *p_historique;    //pour le fichier historique.txt
    FILE *p_user;    //pour le fichier user.txt
    char cHistorique[]="historique.txt";
    char cUser[]="user.txt";
    int index;
    char cDateHeure[19], cNumBadge[16];
    errno_t erreur;
    char ligne[50];
               
//------------------------------------------------------------------------------------------------------------------------------
        erreur = fopen_s(&p_historique, cHistorique, "w");  /* on ouvre un fichier en  write ce qui provoque la création de celui ci */
        if(erreur == 0){
            fprintf(p_historique, "%s ", cHistorique);
            fprintf(p_historique, "%s\n", cHistorique);
            fprintf(p_historique, "%s ", cHistorique);
            fprintf(p_historique, "%s\n", cHistorique);}
        fclose(p_historique);
//------------------------------------------------------------------------------------------------------------------------------
        erreur = fopen_s(&p_historique, cHistorique, "r");  // read
        if(erreur == 0){
            erreur = fopen_s(&p_user, cUser, "w");
            if(erreur == 0){
                while( fgets(ligne, 255, p_historique) ){ //lire jusqu'au retour ligne
                    for(index=0;index<=strlen(ligne);index++)
                    {
                        fprintf(p_user, "%s\n",ligne[index]);
                    }                  
                }
            }
        }
        fclose(p_user);
        fclose(p_historique);
       
}

si vous pouvez m'aider......
mardi 13 mars 2007 à 11:23:24 | Re : fgets pose probleme

Stephworlds

ça y est ça marche j'ai changé :
                while( fgets(ligne, 255, p_historique) ){ //lire jusqu'au retour ligne
                    for(index=0;index<=strlen(ligne);index++)
                    {
                        fprintf(p_user, "%s\n",ligne[index]);
                    }                  
                }

par :
                for (index = 0; !feof(p_historique); ++index) {
                                fgets(tab[index], 256, p_historique);
                                fprintf(p_user, "%s\n",tab[index]);
                }

Par contre dans le fichier cible, il y a :
        historique.txt historique.txt

        historique.txt historique.txt

        Ð¥.|

alors que dans le fichier source j'ai :
        historique.txt historique.txt
        historique.txt historique.txt

PS : merci AlexMAN
mardi 13 mars 2007 à 11:53:23 | Re : fgets pose probleme

Stephworlds

reponse : pour le saut de ligne c'est qu'il y en a un dans le tableau et un dans le fprintf(p_user, "%s\n",ligne[index]);
et pour le Ð¥?| c'est que le prog lit une ligne apres la derniere j'ai contourné le probleme par :
               for (index = 0; !feof(p_historique); ++index) {
                    fgets(tab[index], 255, p_historique);
                }
                test=index;
                for (index = 0; index<test ; ++index) {
                    fprintf(p_user, "%s",tab[index]);
                }

Par contre j'arrive pas à savoir pourquoi mon premier prog plantait si quelqu'un pouvait m'expliquer.
De plus dans mon programme final il va faloir que je sépare une ligne en plusieurs partie : dans ce cas je veux un historique.txt dans chaque variable.
mardi 13 mars 2007 à 22:50:01 | Re : fgets pose probleme

Matt67

Bonsoir,

J'ai juste regarder le code de ton premier exemple :
ligne[index] = un caractere donc dans ton fprintf il ne faut pas mettre %s mais %c
sinon, c'est quoi ce fopen_s et errno_t ?
le prototype de la fonction est de ce style int main(); ou int main(int argc, char** argv); et de plus il doit retourner une valeur donc de type int.

Matt...
jeudi 15 mars 2007 à 12:30:46 | Re : fgets pose probleme

Stephworlds

Pourtant quand je fait %s ça écrit dans le fichier. Je comprend pas....
Le fopen_s est pour ouvrir et creer le fichier, et errno_t est un type de variable (d'ou il vient? euh? faut demander a microsoft....)
Pour le main je compte faire un programme plus complet ça c'est du camboui pour test donc qu'il me retourne quelquechose ou pas je m'en fiche. Le truc c'est que dans mon programme final il va faloir que je sépare une ligne en plusieurs partie. C'est plutot ça mon gros soucis.
merci de ton aide


Cette discussion est classée dans : fichier, erreur, include, historique, chistorique


Répondre à ce message

Sujets en rapport avec ce message

Tableau de correspondance des fonctions c++ et de leur fichier #include [ par guguy ] BonjourJ'aimerais savoir s'il serait possible de trouver un tableau de correspondance entre les fonctions c++ et leur fichier #include (ex : cout -> i 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 erreur de demarrage programme [ par nango ] Quand je compile sous visual c++ il m'apparait le message d'erreur suivant : "un fichier.DLL requis, MSPDB60.DLL, n'a pas été trouvé".Pourtant ce fich config.msi [ par coockiesch ] Hello! J'ai créé un exe et créé avec visual studio un installateur. Je peux installer mon prog sans problême mais lorsque je veux le désinstaller j'ob Problemes de fonctions (niveau debutant) [ par zzzzzz ] en fait je veut faire un programme console dans le but de me familiariser avec les fonctions que je maitrise pas et que je veux apprendre. en francais probleme d'include [ par titus0m ] bonjour,je develop sous kdev sous linux.mon probleme est un conflit entre deux include qui possede une fonction qui se nomme pareil. C'est la fonction erreur include windows.h already included [ par Dod ] Salut,j'ai un probleme avec un prog qui utilise les includes suivantes:#include #include #include le problème, c'est qu'il affiche le message suivant: Erreur "Abandon" [ par patrickbateman ] Bonjour a tous,j'ai cree un petit programme en c, une fois compile par GCC l'execution se passe tt a fait normalement sauf qu'il affiche "Abandon" a l recherche et comparaison dans fichier [ par rissorg ] J'ai un probleme de recherche et de comparaison entre une string rentree au clavier et des donnees sur un fichier texte.Voici mon source:#include #inc #include circulaires [ par abubu38 ] Salut, J'ai un gros probleme de compilation au niveau des .h :fichier f1.h : #include f2.h class A { // définition nécéssitant la classe


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,530 sec (3)

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