Heim > Backend-Entwicklung > C++ > Hauptteil

Wie kann ich stdin bis EOF in C ohne explizite Schleifen lesen?

Susan Sarandon
Freigeben: 2024-11-17 04:01:03
Original
745 Leute haben es durchsucht

How Can I Read stdin Until EOF in C   Without Explicit Loops?

Erfassen von Eingaben von der Standardeingabe bis zum EOF ohne Schleifen

Das Lesen von Eingaben von der Standardeingabe bis zum Ende der Datei (EOF) ist üblich Aufgabe in der C-Programmierung. Typischerweise werden Schleifen verwendet, um dies zu erreichen, aber in bestimmten Situationen kann ein Ansatz ohne Schleifen wünschenswert sein.

Lösung ohne Schleifen

Leider gibt es keine einzige Lösung , Nicht-Schleifenfunktion in C, die Eingaben von stdin bis EOF lesen kann. Die Kombination von Eingabeoperatoren und C-String-Manipulation bietet jedoch eine Problemumgehung:

char input[1000];
cin.getline(input, 1000);
while (cin.eof() == false) {
    cout << input << endl;
    cin.getline(input, 1000);
}
Nach dem Login kopieren

Dieser Ansatz verwendet cin.getline(), um maximal 1000 Zeichen von stdin in das Eingabearray einzulesen. Anschließend prüft es mithilfe von cin.eof(), ob EOF erreicht wurde. Wenn nicht, wird die Eingabe auf der Konsole gedruckt und der Vorgang wiederholt, bis EOF auftritt.

Bester schleifenbasierter Ansatz

Wenn dies bei einer Lösung ohne Schleife nicht der Fall ist Machbar oder wünschenswert, der beste schleifenbasierte Ansatz ist die Verwendung der Funktion std::getline():

string line;
while (getline(cin, line)) {
    // Process the line
}
Nach dem Login kopieren

Dieser Ansatz führt in eine Schleife ein, die liest Eingabezeilen mit getline(), bis das Ende der Datei erreicht ist. getline() gibt false zurück, wenn die Eingabe fehlschlägt oder EOF auftritt, wodurch die Schleife beendet wird.

Das obige ist der detaillierte Inhalt vonWie kann ich stdin bis EOF in C ohne explizite Schleifen lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage