A voir également:
- Lecture fichier C++
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir fichier .bin - Guide
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
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.
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.
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
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
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
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;
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;