Liest eine Zeile von zahlen, die mit C++
Was ist die standard-Lesart eine "Zahlenreihe" und speichern diese zahlen in einem Vektor.
file.in
12
12 9 8 17 101 2
Sollte ich Lesen Sie die Datei zeilenweise ein, teilt die Linie mit mehreren zahlen, und speichern der tokens in das array ?
Was soll ich verwenden für das ?
- Wenn Sie garantieren können, Sie werden int ist, können Sie einfach Lesen Sie und speichern Sie Sie in einem integer-array (oder eine STL-Daten-Struktur wie vector funktionieren würde) gewährt, dass Sie erklären, wie Sie zu analysieren, mit welchem Trennzeichen, die Sie verwenden. Wenn die Ausgabe könnte etwas anderes sein, werden Sie wahrscheinlich wollen, um zu Lesen, was in einen string und stringstream verwenden, um Sie zu konvertieren Ganzzahlen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine Lösung:
begin
ist einistream_iterator
Lesen vonmyStream
, undeof
ist einistream_iterator
repräsentiert das Ende der Datei.eof
wird default-initialisiert. Und die spec sagt, dass ein default-initialisiertistream_iterator
stellt die end-of-stream-iterator.std::cin ist die standard-Weg, dies zu tun. std::cin eliminiert alle " whitespaces innerhalb jeder Reihe, so dass Sie tun
und Sie werden automatisch eingefügt werden zu einem Vektor 🙂
EDIT:
wenn Sie Lesen möchten, können Sie die Datei konvertieren zu std::cin, so liest Sie automatisch aus einer Datei mit:
freopen
spielt schön mitstd::cin
?freopen()
Ausnahmen!?std::cin
beseitigt nicht die witespace, die>>
- operator tut. Der pseudocode ist falsch (warum nicht einfach post-code?). Auch die Wiedereröffnung der standard-Eingabe ist nicht ein guter Weg, um Dateien Lesen. Verwenden Sie einfach einstd::ifstream
und vergessenstd::cin
.