Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Ouvrir et afficher un fichier texte en C [ Divers / Débutant(e) ] (AsM0DeUz)

mardi 23 janvier 2007 à 14:09:48 | Ouvrir et afficher un fichier texte en C

AsM0DeUz

'lut

Je m'initie actuellement au C. Apres avoir fait les exos les plus basiques ... je passe au basique niveau 2
J'ai ecris qques lignes pour afficher le contenu d'un fichier texte (qui fonctionne :)) :

#include <stdio.h>

#define LineMaxSize 80

int main(int argc, char *argv[])
{
    char *pfilename;
    FILE *pfiletxt;
    char *buffer;

    if (argc <= 1)
    {
        printf("what file to open ?");
        return 0;
    }

    pfilename=argv[1];
    pfiletxt=fopen(pfilename,"r");
    if (pfiletxt !=NULL)
    {
        while (fgets(buffer, LineMaxSize, pfiletxt) != NULL)
        {
            printf("%s",buffer);
        }

    }
    else printf ("File does not exist");
    return 0;
}


Seulement dés que je modifie mon prog pour mettre la partie lecture de fichier sous forme de fonction, il plante lamentablement et j'arrive pas a trouver pq :( Il plante la ligne surlignee ci-dessous.

#include <stdio.h>

#define LineMaxSize 80

int OpenBoardFile(char *pFileName);
int initboard(char *pTab, int TabSize, FILE *pBoardFile);

int main(int argc, char *argv[])
{
    if (argc <= 1)
    {
        printf("what file to open ?");
        return 0;
    }
    OpenBoardFile(argv[1]);
}

int OpenBoardFile(char *pFileName)
{
    FILE *pFileTxt;
    char *CurLine;
   
    pFileTxt=fopen(pFileName,"r");
    if (pFileTxt != NULL)
    {
        printf("Test");
        while (fgets(CurLine, LineMaxSize, pFileTxt) !=NULL)
            printf("%s", CurLine);
    }
    else printf ("File does not exist");
    return 0;
}


Je suppose que ca doit etre un probleme de pointeur mais quoi ?

Merci


mardi 23 janvier 2007 à 15:30:53 | Re : Ouvrir et afficher un fichier texte en C

BruNews

Administrateur CodeS-SourceS
Tes *char ne sont pas alloués et ne pointent donc sur rien.

ciao...
BruNews, MVP VC++

mardi 23 janvier 2007 à 17:08:59 | Re : Ouvrir et afficher un fichier texte en C

turnerom

#include #include #define LineMaxSize 80 int OpenBoardFile(char *pFileName) { FILE *pFileTxt; char *CurLine=(char*)malloc(sizeof(char)*LineMaxSize) ; pFileTxt=fopen(pFileName,"r"); if (pFileTxt != NULL) { printf("Test"); while (fgets(CurLine, LineMaxSize, pFileTxt) !=NULL) printf("%s", CurLine); } else printf ("File does not exist"); return 0; } int main(int argc, char *argv[]) { if (argc <= 1) { printf("what file to open ?\n"); return 0; } OpenBoardFile(argv[1]); }

mardi 23 janvier 2007 à 17:10:20 | Re : Ouvrir et afficher un fichier texte en C

turnerom

Voir même je peux meme penser à rajouter pour l' '\0' char *CurLine=(char*)malloc(sizeof(char)*LineMaxSize+1)

mardi 23 janvier 2007 à 20:32:25 | Re : Ouvrir et afficher un fichier texte en C

AsM0DeUz

Ce que je ne comprends pas, c'est pq la premiere version (celle sans la fonction) marche alors que je ne fais pas d'allocation non plus et pas la seconde qui me donne une erreur

Merci

mardi 23 janvier 2007 à 21:02:18 | Re : Ouvrir et afficher un fichier texte en C

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Indique seulement que dans le 1er cas, tu avais tout lr reste d'un segment libre sous ta variable alors que dans la fonction tu écrases direct EIP et le reste.
Dans tous les cas, faire toujours pointer un pointeur sur un buffer valide.

ciao...
BruNews, MVP VC++

mercredi 24 janvier 2007 à 10:08:47 | Re : Ouvrir et afficher un fichier texte en C

AsM0DeUz

Un "free" de *CurLine est il nécessaire ?

mercredi 24 janvier 2007 à 10:21:28 | Re : Ouvrir et afficher un fichier texte en C

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Tout ce qui est alloué dynamiquement (malloc(), new, VirtualAlloc(), etc...) doit être libéré avec la fonction ou l'opérateur correspondant au mode d'allocation.

ciao...
BruNews, MVP VC++



Cette discussion est classé dans : int, file, printf, char, pfiletxt


Répondre à ce message

Sujets en rapport avec ce message

Hachage fermé problème de lecture [ par mcflysupersonic ] Bonjour je suis nouveau sur le forum est ceci est ma première question donc j'espère que je ne me suis pas trompé d'endroit pour poster.Voilà j'ai un segmentation fault help [ par alabb ] aidez moi je suis un new bie, j'ai un segmentation fault a la fin du prog:si gagant apres avoir affiché WINNERsi perdant apres avoir affiché "votre s conversion [ par coyotedef ] salut!!lors de la compilation de mon code une erreur apparait. impossible de trouver un remede. "cannot convert parameter 1 from 'char [10]' to 'char' concatenation [ par asmv ] //a partir d'elements de tableau 'int' transformes en 'char'//essai de concatenation qui ne fonctionne pas pourquoi ?//merci pour votre aide#include # oh non!! [ par bako25 ] Le prog suivant  calcule le nombre des 'e' dans un paragraphe: #include #include< problem avec un char[] [ par kibab ] Bounour a vous tous, je suis nouveau de ce langage et je m'amuse à faire des épreuves diverses.Ici il y a un petit example mais jái un problem:#includ Lecture et ecriture sur fichier [ par developvbdebut ] Bonjour tout le mondeJe travaille sur la gestion des fichier en c.Mon livre n'explique pas clairement l'ectriture et la lecture dans les fichiers.Voic printf de char en hexadécimal affiche un byte en 4 caractères ? [ par develdelphi ] Bonjour,Le printf  de mon compilateur génère des erreures d'affichages, en effet je dipose de variables unsigned char que je voudrais affichées en héx Sélection d'octet [ par dayvid75014 ] Bonjour à tous, Je récupère les octets de mon fichier vidéo dans un buffer "Buffer[]" et je voudrais sélectionner les octets 0x47 et je n'y a Wad File [ par Nicolas___ ] Bonjour , voila j'ai un petit probleme pour lire 1 fichier WAD (  wad  )donc suivant le modele décrit je me suis fait 2 structures : struct Header{


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.