Accueil > Forum > > > > Problème écriture fichier
Problème écriture fichier
mardi 20 mai 2008 à 18:04:51 |
Problème écriture fichier

pitidragon
|
Bonjour à tous ! J'ai besoin d'aide pour finaliser un projet pour la fac. Je dois réaliser un démineur, et j'ai un petit soucis pour finir. Je dois gérer les meilleurs scores et donc en cas de meilleur score écrire ce score dans un fichier. Mon fichier texte est très simple, au début les scores sont initialisés à 999, avec une ligne par niveau : 999 999 999 999
J'ai écrit une fonction pour se placer sur la ligne qui correspond au niveau de jeu, et écrire le score à cette ligne : int ecrire_score(int choix, double score) { FILE *f; int i=1; char temp;
f=fopen("Score","r+t"); if(f==NULL) { perror("Erreur d'ouverture du fichier "); }
while(i<=4) { if(i==choix) { fprintf(f,"%lf\n",score); return(0); } else { fgets(&temp,MAX_LIGNE,f); i++; } } return(0); }
Problème : j'ai une erreur de segmentation, et le soucis vient du fgets, mais je ne sais pas comment corriger ! Si quelqu'un peut m'aider je le remercie d'avance !
|
|
mardi 20 mai 2008 à 18:33:56 |
Re : Problème écriture fichier

SAKingdom
|
Réponse acceptée !
fgets prend un pointeur char comme premier paramètre. Cependant, tu passes un char. char temp[MAX_LIGNE]; // SI MAX_LIGNE N'EST PAS TROP GROS ... fgets(temp, MAX_LIGNE, f); C++ (@++)
|
|
mardi 20 mai 2008 à 18:38:58 |
Re : Problème écriture fichier

pitidragon
|
Pourtant j'ai fait la même chose dans une autre fonction et ça marche :
double lire_score(int choix) { FILE *f; int i=1; double meilleur_score; char temp; f=fopen("Score","rt"); if(f==NULL) { perror("Erreur d'ouverture du fichier "); } while(i<=4) { if(i==choix) { fscanf(f,"%lf",&meilleur_score); fclose(f); return(meilleur_score); } else { fgets(&temp,MAX_LIGNE,f); i++; } } }
Bizarre non ?
|
|
mardi 20 mai 2008 à 18:49:00 |
Re : Problème écriture fichier

SAKingdom
|
Ce n'est pas parce que le code compile qu'il est correct. Cette section ne fonctionnera pas d'avantage. Si l'erreur n'est pas située là lors du plantage, c'est simplement qu'il n'a pas exécuté ce bout de code (il a planté avant). C++ (@++)
|
|
mardi 20 mai 2008 à 18:53:17 |
Re : Problème écriture fichier

SAKingdom
|
Ou alors i == choix lors de l'exécution ou il y a eu une erreur lors de l'ouverture du fichier. Menfin bref, le programme ne s'est pas rendu jusque là. C++ (@++)
|
|
mardi 20 mai 2008 à 18:55:16 |
Re : Problème écriture fichier

pitidragon
|
Ok merci, je ferai les modifications que tu m'as conseillé :)
|
|
mardi 20 mai 2008 à 19:02:40 |
Re : Problème écriture fichier

jfrancois
|
Bonjour, C'est peut-être une bêtise mais est-ce que celà ne serait pas plutôt dû à l'alignement en mémoire sur des blocs de 4 octets ? Le caractère temp occupe bien un octet mais les 3 qui suivent sont bloqués par l'alignement des données sur 4 octets, donc la lecture déborde dessus sans rien casser puisqu'il n'y a, justement, que 4 caractères à lire (3 caractères du nombre + fin de ligne) ! Jean-François
|
|
mardi 20 mai 2008 à 19:06:51 |
Re : Problème écriture fichier

SAKingdom
|
Je ne pense pas. J'ai fais les tests et, sous linux du moins, l'erreur de segmentation est bien détectée peut-importe qu'il y ait une variable qui suit ou non. C++ (@++)
|
|
mardi 20 mai 2008 à 19:15:19 |
Re : Problème écriture fichier

pitidragon
|
Si ça peut être utilise voici un lien pour télécharger l'intégralité de mon démineur. Pour info je travaille sous linux. [ Lien ]
|
|
mercredi 21 mai 2008 à 15:38:13 |
Re : Problème écriture fichier

pitidragon
|
SAKingdom je te remercie le problème venait bien de là !
|
|
Cette discussion est classée dans : fichier, problème, ligne, int, score
Répondre à ce message
Sujets en rapport avec ce message
Pb de gestion de fichier avec fstream [ par Bub325 ]
Salut,J'ai deux problème distinct avec fstream, Le premier est que lorsque j'arrive à la fin d'un fichier, je ne peut plus revenir plus haut dans ce d
Comment se positionner sur une ligne dans un ifstream? [ par mcrogiez ]
Bonjour à tous,Mon problème est très simple, cependant, je n'arrive pas à le résoudre.En C++, j'utilise des objets de type ofstream et ifstream afin d
lecture ordonnée dans fichier [ par UnderFlow ]
Bonjour à tous,(encore une question dsl),j'aimerais savoir s'il existe en C ou C++ (pas de C#), une fonction qui permette de :lire dans le fichier "mo
problème d'ouverture de fichier [ par marc_dd ]
Bonjour voila j'ai codé un peti programme avec sauvetage et ouverture de fichier, quand je sauve pas de problème il créer le fichier ou le mets à jour
Lire une ligne au hazard dans un fichier [ par sebastienmz ]
Bonjour je suis confronter a un problème : j'aimerais lire une ligne au hazard dans un fichier et je sais pas trop comment faire , pourriez-vous m'aid
Problème avec type de données et opérateur >> lors de lecture de fichier [ par bny ]
Bonjour, j'essaie de décoder un fichier de configuration(txt) j'ai certain problèmes avec les types de données et l'opérateur >> (flux de données). J
Table Ascii [ par Oxie666 ]
Hello, je suis tout nouveau ici (et forcement méga débutant) et j'ai une question :J'ai écrit un petit programme afin d'avoir sous la main une table a
Lecture d'un fichier avec decoupe de chaine. [ par macbang ]
Bonjour, je reviens vers vous pour un problème que j'ai du mal a résoudre.Mon programme ouvre un fichier, le but étant de découper ligne par ligne pou
Passer un tableau de char en paramètre [ par DeadStar117 ]
Bonjour,Je cherche à passer des tableaux de char en paramètre à mes procédure mais je n'y arrive pas.Voila un exemple de code:GestionArbre GeAr;<font
Problème d'écriture dans une fichier avec VC++ [ par snoopi_19ans ]
j'ai développé une petite application avec MFC sur VC++ V6 : **************************** void CTest_Dlg::OnOK() { // TODO: Add extra validation her
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|