Heim >Backend-Entwicklung >C++ >Wie analysiert man Ganzzahlen aus einer Textdatei in C mit ifstream?

Wie analysiert man Ganzzahlen aus einer Textdatei in C mit ifstream?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-29 13:18:29333Durchsuche

How to Parse Integers from a Text File in C   with 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> zu analysieren.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn