J'ai écrit une fonction assez simple qui lit dans les noms de joueurs possibles et les stocke dans une carte pour une utilisation ultérieure. Fondamentalement dans le fichier, chaque ligne est un nouveau nom de joueur possible, mais pour une raison quelconque, il semble que tout, mais le nom de famille a un nouveau caractère de ligne invisible après. Mon impression le montre comme ceci ...Caractère de nouvelle ligne dans un document texte?
nameLine = Georgio
Name: Georgio
0
nameLine = TestPlayer
Name: TestPlayer 0
Voici le code actuel. Je suppose que je dois retirer quelque chose, mais je ne suis pas sûr de ce que je dois vérifier.
bool PlayerManager::ParsePlayerNames()
{
FileHandle_t file;
file = filesystem->Open("names.txt", "r", "MOD");
if(file)
{
int size = filesystem->Size(file);
char *line = new char[size + 1];
while(!filesystem->EndOfFile(file))
{
char *nameLine = filesystem->ReadLine(line, size, file);
if(strcmp(nameLine, "") != 0)
{
Msg("nameLine = %s\n", nameLine);
g_PlayerNames.insert(std::pair<char*, int>(nameLine, 0));
}
for(std::map<char*,int>::iterator it = g_PlayerNames.begin(); it != g_PlayerNames.end(); ++it)
{
Msg("Name: %s %d\n", it->first, it->second);
}
}
return true;
}
Msg("[PlayerManager] Failed to find the Player Names File (names.txt)\n");
filesystem->Close(file);
return false;
}
Soyez prudent lorsque vous utilisez 'char *' comme clé dans une carte. Utilisez plutôt 'std :: string' pour représenter les chaînes. –
Comment le fichier names.txt ressemble (ce qui donne le résultat ci-dessus)? – Default
Êtes-vous sûr que ReadLine ne lit pas le caractère de nouvelle ligne? – Default