Lecture fichier C++

Fermé
juju - 5 déc. 2006 à 16:07
 azzeddine - 28 nov. 2007 à 18:25
Bonjour,
je fais du C/C++ sur linux
Je souhaiterai faire une fonction qui me permet de lire un fichier au format nom_joueur.txt que j'ai sauvegardé avant.
j'effectue en commande :
strcat (joueur1.nom, ".txt");
j'ai donc dans joueur.nom : Toto.txt (si le nom du joueur est toto!)
J'ai verifié j'ai bien dans mon dossier ce fichier.
Je souhaite donc ouvrir ce fichier en faisant :
ifstream lecture (joueur1.nom);
Quand je compile : erreur de segmentation!
J'ai vérifié en faisant des tests le probleme est qu'il ne lit pas du tout le fichier.
Comment faire?Merci
A voir également:

4 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
6 déc. 2006 à 08:52
à la place de cerr, tu peu mettre perror().
compile avec l'option de debug (-g je croi)
puis lance ton programme avec gdb :
gdb *.exe
run

il te dira où est exactement ton erreur de segmentation.
iflect>>type;//lit le type
peut être source d'erreur, car 'type' est de type char, donc il faut que dans ton fichier la premiere donné soit un carctère unique.
1
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
5 déc. 2006 à 16:59
Salut.
quel est le type de joueur1.nom ?
fait une sortie de joueur1.nom voir si il est bien modifier.
Tu fait du C++, donc autant utiliser <string> de la STL.
string joueur1.nom;//tu met le type string à nom
donc ensuite,
fstream lecture((jouer1.nom+".txt").c_str(),std::ios::in);
ensuite, fait une sortie de lecture, vérifier qu'il n'est pas nul (que l'ouverture a bien fonctionner)
de la façon suivante :
if (!lecture) cerr<<"pb d'ouverture\n";// technique vue l à : https://en.cppreference.com/w/cpp/io/basic_fstream/open
bonne chance
0
j'ai essayé mais ca ne marche pas non plus!
En fait je fais du C/C++ pas vraiment du C++ (pas vu cerr, str()...)
voici ma fonctionen entier :

void fonction (joueur joueur1)

{
char type, ligne, direction;
int colonne, nombre, i, t;
strcat (joueur1.nom, ".txt");
cout<<"fichier "<<joueur1.nom<<endl;
ifstream iflect (joueur1.nom);
for (i = 0; i<5; i++)
{
iflect>>type;//lit le type
cout<<"type "<<type;
iflect>>nombre;//lit le nombre de bateau de ce type
cout<<"nombre : "<<nombre;
while (nombre>0) //tant qu'il y a des bateaux
{
iflect>>ligne;
cout<<"ligne "<<ligne;
iflect>>colonne;
iflect>>direction;
//place le bateau
placer_bateau(ligne, colonne, direction, type, joueur1.mon_tab);
nombre--;
}
}
iflect.close();
}

typedef struct {
char nom[20];
char ** mon_tab;
char ** mes_tirs;
flotte flotte_adversaire;
} joueur;
0
salut
j'amerai bien savoir ou d'envoyer des nouveaux programme écrit en c ou des documents pour un débitant concernant "formation"
mes salutations
0