Ich brauche Hilfe beim Erstellen einer Funktion, die Daten aus einer TXT-Datei in ein Array von Strukturen liest. Ich habe Probleme beim Speichern der Daten in der Array-Liste. Die Funktion loadNames sollte aufgerufen werden, um die gesamte Datei names.txt zu lesen und die Daten von jeder Zeile in eine Struktur vom Typ Name zu speichern. Die Hauptfunktion sollte ein Array von Name-Strukturen an loadNames übergeben, so dass sie einfach die Daten einer Zeile in die Struktur am ersten Element dieses Arrays lesen kann, dann liest sie die Daten der zweiten Zeile in das zweite Element usw. Dies sollte für erledigt werden alle 4429 Zeilen der Datei names.txt. Nachdem loadNames abgeschlossen und an main zurückgegeben wurde, darf die Datei names.txt während dieser Ausführung der Anwendung nie mehr gelesen werden.Speichern einer Textdatei in einem Array von Strukturen
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
const int SIZE=4429;
const int NAME_LEN=21;
const int NUM_RANKS=11;
//Structure used to store the data contained on one line of the file.
//name is an array of strings.
//rank is an array of int storing
struct Name{
char name[21];
int rank[11];
};
void loadNames(Name []);
int main(){
Name list[SIZE];
char choice;
loadNames(list);
return 0;
}
//The function that has been kicking my ass I tried using a loop
//to populate the array but I'm unable to separate the strings and the numbers
void loadNames(Name list[]){
ifstream nameList;
int count=0;
char line[4430];
int ch;
nameList.open("names.txt");
while((ch=nameList.peek())!=EOF){
nameList.getline(line,SIZE); // I was trying a [for] loop but I am
// not sure if it should replace the [while] loop.
};
nameList.close();
}
die txt-Datei wird wie folgt (es ist länger, aber es folgt das gleiche Format
A 83 140 228 286 426 612 486 577 836 0 0
Aaliyah 0 0 0 0 0 0 0 0 0 380 215
Aaron 193 208 218 274 279 232 132 36 32 31 41
Abagail 0 0 0 0 0 0 0 0 0 0 958
es würde helfen, wenn wir das, was der Inhalt der Datei names.txt wusste war .... –
es sich um eine Liste von rund 4429 Zeilen ist jeweils mit einem Namen beginnend gefolgt durch 11 Spalten von int – Francisco
Gibt es Leerzeichen im Namen? Was ist das Trennzeichen? Bitte editieren Sie einige Zeilen der Datei, die in Ihrer Frage verwendet wird. –