Heim > Artikel > Backend-Entwicklung > Wie analysiert man Ganzzahlen aus einer Textdatei in C mit ifstream?
Ganzzahlen aus einer Textdatei in C mit ifstream analysieren
Im Bereich der Programmierung ist die Arbeit mit Dateien eine häufige Notwendigkeit. Eine dieser Aufgaben besteht darin, Ganzzahlen aus einer Textdatei für die Datenanalyse oder die Diagrammerstellung zu lesen. Wenn wir jedoch mit einer Textdatei konfrontiert werden, die eine unbekannte Anzahl von Zeilen enthält, von denen jede aus einer unterschiedlichen Anzahl von Ganzzahlen besteht, wird das Parsen zu einer Herausforderung.
Um dieses Problem zu lösen, können wir die bewährte ifstream-Klasse und std verwenden: :getline()-Funktion zum Lesen von Zeilen aus der Textdatei. Allerdings stellt das Zeilenparsen eine neue Hürde dar. Um dies zu überwinden, beschäftigen wir uns mit zwei effektiven Ansätzen:
Verwendung von StringStream und While-Schleife:
Diese Methode verwendet den istringstream-Konstruktor, um eine Zeile zu analysieren. Es liest Ganzzahlen innerhalb einer While-Schleife und hängt sie an einen Vektor an, bis ein Zeilenumbruch auftritt:
<code class="cpp">while (std::getline(infile, line)) { std::istringstream iss(line); int n; std::vector<int> v; while (iss >> n) { v.push_back(n); } // Utilize the parsed integer vector 'v' for your desired purpose }</code>
Einzeilige Lösung mit std::move:
For Für einen schlankeren Ansatz können wir eine Kombination aus std::move() und einer for-Schleife verwenden:
<code class="cpp">for (std::string line; std::getline(std::cin, line); vv.push_back(std::vector<int>(std::istream_iterator<int>(std::stay(std::istringstream(line))), std::istream_iterator<int>())) ) { }</code>
Diese Lösung nutzt die Funktion std::stay(), um den Besitz des Eingabestreams zu behalten. Ermöglicht die Verwendung innerhalb der for-Schleife. Es iteriert über die Zeilen und verwendet std::istream_iterator, um Ganzzahlen in Vektor
Das obige ist der detaillierte Inhalt vonWie analysiert man Ganzzahlen aus einer Textdatei in C mit ifstream?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!