Je n'arrive pas à comprendre pourquoi mon programme plante. Lorsque je supprime la boucle while sous "// Affiche les options de nom" Le programme fonctionne correctement. Le code compile sur GCC sans avertissement. Pourrait-il être mon compilateur? Est-ce que cela a quelque chose à voir avec fstream? L'aide serait appréciée.Comment cette boucle bloque-t-elle mon programme?
Oh oui. Si vous vous demandez ce programme va lire data.txt et charger les données appropriées à une instance de la fonction du lecteur. Il est dans un état incomplet pour le moment.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
#define cls system("cls");
bool Pload = false;
void menu();
struct player {
int Px, Py, life = 20;
string name = "";
};
main() {
menu();
}
void menu() {
string cLine,names,input;
int x,i,lineNum = 0;
fstream data;
menu:
data.open("data.txt");
//Gets list of all names in data.txt, Adds them to string names
while(data.good()) {
getline(data,cLine);
if(cLine[0] == '/') {
names += cLine;
}
}
names += '\n';
//Displays name options
cls
cout << "Welcome to W A L K.\n\nWhat is your name?\n";
while(names[i] != '\n')
{
cout << i;
if(names[i] == '/') {cout << endl;i++;} else {cout << names[i];i++;}
}
cout << endl;
getline(cin,input);
//checks if name exits and loads file data into player/world objects
data.close();
data.open("data.txt");
while(data.good()) {
lineNum++;
getline(data,cLine);
if(cLine.erase(0,1) == input) {
cls cout << "Found Name" << endl;
getline(cin, input);
}
}
//Restarts menu
data.close();
goto menu;
}
donnees.txt
/Sammy
x:0
y:0
l:20
\
/Mary
x:7
y:9
l:20
\
/Dill
x:7
y:9
l:20
\
/Jack
x:7
y:9
l:20
\
Wow, ça m'a vraiment aidé. Je voterais mais c'est une de mes premières questions. Je vous remercie. –