Also versuche ich ein Programm zu erstellen, das liest, was in einer Textdatei ist und dann Plätze zwischen zwei Elementen im Vektor zu tauschen.Vector Probleme, eine kleine Hand vielleicht?
Die Textdatei hat diese Reihenfolge: NAME NACHNAME REGISTRATION_NUMBER UND CITY_ADRESS und ist eine Liste von vielleicht 100 Personen ... da die Reihenfolge ist die gleiche ich finde, dass ich nur den Platz zwischen ersten und zweiten und ändern müssen inkrementiere ich mit 2, damit ich wieder zum Vornamen komme ... aber das ist nicht mein größtes Problem ...
Wenn ich getline benutze, sieht es aus wie es alles in das erste Element des Vektors steckt, das ist komisch und deswegen kann ich die Plätze im Namen nicht ändern. Ich kann nicht herausfinden, wie man das ändert ... ich würde es gerne machen, wenn ein Leerzeichen auftritt, ändert sich das Element.
Ich bin dankbar für die Hilfe, die ich bekommen kann.
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main() {
vector<string> line;
string information;
ifstream myfile ("Namn.txt");
if (myfile.is_open()) {
while (getline(myfile, information)) {
line.push_back (information);
}
myfile.close();
}else cout << "Filen gick inte att öppna!";
for (unsigned int i = 0; i < line.size(); i++) {
cout << line[i] << endl;
}
return 0;
}
[ 'using namespace std;' ist eine schlechte Praxis] (https://stackoverflow.com/q/1452721/2176813), es nie verwenden. – tambre
Ich weiß, dass ich es nicht wirklich benutze, aber das ist nicht das größte Problem, das ich gerade habe :) kann sich nur am Ende ändern. –
sind alle diese Felder in einer Zeile in der Textdatei? Wenn dies der Fall ist, können Sie entweder jedes Feld in einer neuen Zeile haben, dann haben Sie eine zusätzliche Zeile, die zwei separate Personen trennt, oder lesen Sie die ganze Zeile wie Sie sind und trennen Sie sie manuell in den Vektor. –