Lesen einer txt-Datei mit QTextStream C++
Ich mache ein kleines Programm, das ich vorher getan haben, die in Java jedoch möchte ich versuchen, die gleiche Arbeit in C++. Die Idee ist zum Zusammenführen von zwei text-Dateien
Datei1:
a
b
c
Datei2:
1
2
3
Ausgabe-Datei sollte Lesen:
a1
b2
c3
Ich habe mir die QTextStream docs und das war der vorgeschlagene code zum Lesen einer Datei zeilenweise in strings
QFile file(input); //this is a name of a file text1.txt sent from main method
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
return 1;
}
QTextStream in(&file);
QString line = in.readLine();
while (!line.isNull())
{
line = in.readLine();
}
Aber aus irgendeinem Grund wird nichts aus der Datei geladenen an alle. Ich bewies dies durch drucken 'Linie' in die Konsole, und bekam nichts.
So, irgendwelche Ideen? Alles was ich will ist die Datei zu Lesen, und am Ende mit einem string wie diesem
QString text1 = "a\n2\n3"
Ich würde dies tun für beide Dateien, aufteilen des strings in QStringList (wahrscheinlich) verbinden Sie in das format, das ich will, und schreiben Sie Sie auf 3. txt-Datei.
- Dank der Grammatik-nazi für das vorbeischauen und nicht helfen
- ja, ich weiß @Roku das ist im Grunde das, was im Fragen, ist nicht auch das Lesen der Datei, da alle 'input1' ist, ist 'text1.txt' kein Datei-Pfad
- Gibt es irgendeinen bestimmten Grund, es hat zu QTextStream?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum liest du zeilenweise, wenn Sie wollen, dass die gesamte Datei?
Auch, deine while-Schleife ist falsch, Sie müssen
while (!in.atEnd())
für den text-stream statt, die überprüfen, ob der string null ist.readLine
nicht die neue Zeile symbol.Sowieso, es wäre viel einfacher, öffnen Sie beide Dateien gleichzeitig und konstruieren Sie den string auf die gehen, statt zu splitten und Zusammenfügen.
input
ist kein Gültiger Dateipfad und-name. Wenn die Datei in deinem Projekt-Ordner müssen Sie nur den Namen der Datei.Wenn der name der Datei enthält keine vollständigen Pfad, aber Sie sind sehr sicher, dass die Datei liegt im gleichen Verzeichnis wie die Anwendung, die Anwendungen nutzen Pfad wie in diesem Beispiel:
Versuchen, diese zu blockieren-:
bekommst du die Ausgabe mit dieser while-Schleife?