Enregistrer score dans fichier texte

Fermé
Roboto123 - Modifié le 13 mai 2021 à 02:36
Elecsupchi Messages postés 14 Date d'inscription vendredi 14 mai 2021 Statut Membre Dernière intervention 31 mai 2021 - 31 mai 2021 à 00:01
Bien le bonjour, je créer le jeu du Tic-tac-toe, et j'aimerais enregistrer dans un fichier texte le score des joueur gagnant et le joueur perdant pour que lorsque j'entre sur le menu de mon jeu, il va y avoir l'option Score et lorsque nous appuyons sur l'option nous puissions voir les score précédant.

Exemple de fichier txt

Toto Mateo
1 0
0 1
A voir également:

6 réponses

Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 928
15 mai 2021 à 07:45
Le formatage du fichier, en soit n'est pas spécifiquement un problème d'écriture dans le fichier, pour apparaitre sur la console ce serait pareil.
Mais ta question était
Enregistrer score dans fichier texte
donc on t'a orienté sur la partie écriture de fichier...

Bref.

Je suppose que tu as une ou des variables qui stockent les noms de joueurs. Et bien il faut t'en servir pour écrire la première ligne.
Je suppose aussi que tu as une ou des variables qui stockent les résultats des parties, Et bien, il faut t'en servir pour les lignes suivantes
1
kevinG73 Messages postés 1 Date d'inscription jeudi 13 mai 2021 Statut Membre Dernière intervention 13 mai 2021
13 mai 2021 à 03:22
Bonjour ,
tu as pu réaliser un jeu mais tu as un problème pour enregistrer un texte ?
tu peux commencer à lire :
https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c/1896398-lisez-et-modifiez-des-fichiers
C'est pas super compliqué
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 928
13 mai 2021 à 08:54
Bonjour Kevin,
tu as pu réaliser un jeu mais tu as un problème pour enregistrer un texte ?

si Roboto123 est au début de sa formation, il est tout à fait possible que son cours lui ait appris à faire un morpion en mode console sans avoir abordé la lecture ou l'écriture dans un fichier texte....
0
Le problème est surtout dans la structure du fichier texte de manière qu'il soit enregistrer d'une telle manière.
Toto Mateo
1 0
0 1
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 928
14 mai 2021 à 09:18
As tu lu le tuto que Kevin t'as proposé?
0
Laurent > Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024
15 mai 2021 à 03:26
Bien sûr, mais il ne démontre pas comment faire pour structurer le fichier comme mentionné plus haut.
0
Elecsupchi Messages postés 14 Date d'inscription vendredi 14 mai 2021 Statut Membre Dernière intervention 31 mai 2021
Modifié le 15 mai 2021 à 14:28
Bonjour!

J'ai un programme à vous proposer, je ne suis pas sûr que ce soit le plus optimisé possible, mais ça fonctionne pour moi!


#include <fstream> // <-- Pour lire et écrire dans le fichier "Score.txt"
#include <string> // <-- Pour pouvoir déclarer les variable "string"
#include <iostream> // <-- Pour activer la console

using namespace std; // <-- IMPORTANT

int main()
{
int score1 = 1; // <-- Les variables "int" contenant les scores
int score2 = 0;

std::string joueur1 = "Toto"; // <-- Tes variables "string" (chaîne de caractères) contenant les pseudos
std::string joueur2 = "Mateo";

std::string Texte[100]; // <-- Création d'un tableau comportant un certain nombre de valeurs

int Prenoms = 0;
int Nbr = 0;


// <-- Le code de ton jeu


string const NomFichier = "EMPLACEMENT DU FICHIER"; //Chemin d'accès au fichier

ifstream Score("EMPLACEMENT DU FICHIER"); //Ouverture du fichier en mode "lecture"

if(Score)
{
std::string ligne;

while (getline(Score, ligne))
{
if (ligne == joueur1 + " " + joueur2)
{
Prenoms = 1;
}

Nbr = Nbr + 1;
Texte[Nbr] = ligne;
}
}
else
{
std::cout << "ERREUR: Impossible d'ouvrir le fichier!" << std::endl;
}


ofstream ScoreE(NomFichier.c_str()); //Ouverture du fichier en mode "écriture"

if (ScoreE)
{
if (Prenoms == 1)
{
for (int i = 1; i <= Nbr; ++i)
{
ScoreE << Texte[i] << endl;
}
ScoreE << score1 << " " << score2;
}
else
{
for (int i = 1; i <= Nbr; ++i)
{
ScoreE << Texte[i];

if (Nbr >= 1)
{
ScoreE << endl;
}
}

ScoreE << joueur1 << " " << joueur2 << endl << score1 << " " << score2;
}
}
else
{
std::cout << "ERREUR: Impossible d'ouvrir le fichier!" << std::endl;
}
}


Et si tu veux afficher les scores précédents:


for (int i = 1; i <= Nbr; ++i)
{
std::cout << Texte[i];

if (Nbr >= 1)
{
std::cout << endl;
}
}

std::cin.ignore();
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Si j'inclus du sfml est-ce que le fonctionnement reste le même?
0
Elecsupchi Messages postés 14 Date d'inscription vendredi 14 mai 2021 Statut Membre Dernière intervention 31 mai 2021
16 mai 2021 à 16:55
Je ne sais pas... Je pense que ça ne changera rien.
0
J'ai remarquer que si j'inclus du sfml l'affichage change comparativement à l'affichage en console. Si nous faisons un affichage ligne par ligne cela affiche par dessus la ligne précédente en sfml. Savez-vous comment arranger ce problème ?
0
Elecsupchi Messages postés 14 Date d'inscription vendredi 14 mai 2021 Statut Membre Dernière intervention 31 mai 2021 > Hilda
31 mai 2021 à 00:01
Bonjour,
Dans ce cas là, on peut essayer d inverser le programme (en lisant de la dernière à la première ligne)

 for (int i = Nbr; i > 0; ++i)
 {
  std::cout << Texte[i];

  if (Nbr >= 1)
  {
   std::cout << endl;
  }
 }

 std::cin.ignore();
0