Lesen von Daten aus der Standardeingabe bis zum Ende der Datei (EOF) in C
Bei der Arbeit mit Benutzereingaben in C ist dies häufig erforderlich um Daten von der Standardeingabe (cin) zu lesen, bis das Ende der Datei (EOF) erreicht ist. Beim Versuch, bis zum EOF zu lesen, sind bestimmte Einschränkungen und Ansätze zu berücksichtigen.
Ein häufiges Missverständnis besteht darin, dass die Verwendung von cin.get(input, ' ') zum Lesen von Daten bis zum EOF oder dem Nullzeichen (' ') verwendet wird. angetroffen wird, kann das gewünschte Ergebnis erzielen. Allerdings stellt „ “ kein EOF dar, und dieser Ansatz liest, bis entweder EOF oder „ “ auftritt, je nachdem, was zuerst eintritt.
Um Daten von cin bis EOF zu lesen, ist die Verwendung einer Schleife erforderlich. Die Funktion std::getline() bietet eine effektive Methode für diesen Zweck:
std::string line; while (std::getline(std::cin, line)) { std::cout << line << std::endl; }
std::getline() liest die Eingabe von cin und speichert sie in der angegebenen Zeichenfolgenvariablen, wobei das Standardtrennzeichen die ist Newline-Zeichen. Es gibt einen booleschen Wert zurück, der angibt, ob eine Zeile erfolgreich gelesen wurde. Wenn EOF auftritt, gibt std::getline() false zurück, wodurch die Schleife beendet wird.
Obwohl es wie eine Einschränkung erscheinen mag, beim Lesen bis EOF eine Schleife zu erfordern, ist es wichtig, sich daran zu erinnern, dass in C , EOF ist kein Charakter selbst. Daher ist es unmöglich, einfach einen einzigen Aufruf von std::getline() durchzuführen, um alle Daten bis EOF zu lesen.
Das obige ist der detaillierte Inhalt vonWie lese ich Daten von der Standardeingabe bis zum EOF in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!