while schleife mit eof beenden
-
hallo
ich bin anfänger. ich möchte eine datei mit einer schleife einlesen. mir ist es schon gelungen, aber ich muss zuvor noch angaben machen wie viele koordinaten ich habe. ich versuche, dass mit einer while - Schleife zu machen und sie mit eof zu beenden. aber bisher habe ich es noch nicht geschafft. kann mir jemand helfen??while (!dateiname.eof())
{
input >> x >> y;
-
Was genau ist denn dein Problem?
-
ich weiß nicht genau wie das mit eof() funktioniert
-
methin schrieb:
... aber ich muss zuvor noch angaben machen wie viele koordinaten ich habe.
Das verstehe ich nicht so ganz. Es würde helfen wenn du etwas mehr Code posten würdest, denn bis jetzt sieht es für mich so aus als würdest du das ganze vermutlich mit dem Code aus diesem Thread hier machen:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-227230-and-start-is-0.html
Sollte ich mit dieser Vermutung tatsächlich ins Schwarze getroffen haben, dann würde ich dir jetzt schonmal raten statt mit Arrays lieber mitstd::vectorzu arbeiten, so wie ich es auch schon in den eingangs erwähnten Thread geraten hatte. Und falls ich doch total daneben liegen sollte, dann poste bitte etwas mehr Code :).
-
so wie ich das jetzt entnommen habe will ich dass ähnlich machen. ich versuche es auch mit fstream. aber ich möchte die koordinaten nicht ausgeben ich will sie nur verarbeiten. das heißt ich brauch sie danach nicht mehr. aber ich möchte auch einen x- wert und einen y-wert einlesen
char dateiname[40];
ifstream input(dateiname);
while (!dateiname.eof()) {
input >> x >> y;hier will ich dann die werte direkt in der schleife verwenden, dann brauche ich kein array.
und sobald die zahlen in der datei zu ende sind soll die whilschleife beendet werden
-
methin schrieb:
...hier will ich dann die werte direkt in der schleife verwenden, dann brauche ich kein array.
und sobald die zahlen in der datei zu ende sind soll die whilschleife beendet werdenDann Probiers mal so:
while (input >> x >> y) { /* x und y verarbeiten */ }Hier wird das Einlesen aus der Datei als Bedingung der
while-Schleife verwendet, was bedeutet, dass wenn es nichts mehr einzulesen gibt, dass dann diewhile-Schleife verlassen wird.
-
while (!input.eof()) {
-
Belli schrieb:
while (!input.eof()) {
Argh, jetzt erst sehe ich das methin das
char-Array und nicht dasifstream-Objekt in der Bedingung derwhile-Schleife verwendet. Oh man, hab ich heute Tomaten auf den Augen
.
-
Also Methin meint das ganze glaube ich so,
er hat Koordinaten in einer Datei dies ließt er mitifstream input(Dateiname);
ein, er will nun nicht die Anzahl der Koordinaten in der Text Datei angeben sonder, das das Programm aufhört die Dateien einzulesen wenn keine mehr vorhabend sind.
Hoff ich hab das ganz so einigermaßen gut ausgedrückt