Mit Daten Verarbeitung
-
Ok danke
-
geht das nicht auch so das ich einfach die komplette datei in ne Struktur lade und dann jedes Feld der Struktur überprüfe bis ich auf ein Feld stoße das leer ist dann weis ich das bis dahin Daten sind und weis dann sofort das hier keine Daten mehr kommen ? Würde ich dann einfach so machen
for (int x=0;x<anzahl_daten;x++) { if (Daten[x].Artikel_Nr==NULL) { anzahl_daten=x; } }
-
Wie willst Du denn die Datei in die Struktur laden? Dazu müsstest Du dann doch auch alle Zeilen nacheinander einlesen.
Nein, die einfachste Lösung ist schon, das in etwa so zu machen:
unsigned int count = 0; std::ifstream infile("Dateiname"); std::string line; while (std::getline(infile, line)) { // Hier die Zeile verarbeiten, oder auch einfach: ++line; } std::cout << "Es sind " << line << " Zeilen in der Datei." << std::endl;
-
Na ja irgendwie geht das nicht da spiel mein Compiler nicht mit der sag mir
std::ifstream infile("datei");
'ifstream' is not a member of 'std'
zudem kennt der 'infile' nicht und es kommten noch ein Paar mehr Felder Meldungen
-
Wie gesagt: Setz Dich mit der Standardbibliothek auseinander. Diese Klassen befinden sich in Header-Dateien, die man einbinden muss:
#include <fstream> // Für std::ifstream #include <string> // Für std::string #include <iostream> // Für std::cout und std::endl
-
Ist schon klar die sind schon drin
-
iCh1989 schrieb:
Ist schon klar die sind schon drin
Dann hast du entweder ein sehr veralteten Compiler oder aber sie stehen nicht dort wo du sie brauchst.
cu André
-
Also das mit Alten Compiler na ja Borland C++ 5.02 von 1997 oder so
ich kann aber normal die Datein einfach eben erneuern oder ?
-
iCh1989 schrieb:
Also das mit Alten Compiler na ja Borland C++ 5.02 von 1997 oder so
ich kann aber normal die Datein einfach eben erneuern oder ?
Wenn du nicht zum Einsatz von dem Compiler gezwungen bist, steig möglichst schnell auf einen aktuellen um (unter Windows ist z.B. Visual C++ 2005 Express, MinGw... kostenlos). Und Header können nicht einfach zwischen den Compilern ausgetauscht werden, da sie nicht zwangsweise kompatibel sind (gerade bei so alten Compilern).
cu André
-
Ja ne brauch den Borland für die Schule weil die den da Benutzten leider .Aber na ja der ist Teils auch besser als der Mircosoft Compiler find ich obwohl er ja nicht so viel kann. Ich versuch das einfach mal.Kann Maximal den Compiler schrotten mehr nicht.
-
iCh1989 schrieb:
Ja ne brauch den Borland für die Schule weil die den da Benutzten leider.
Solang du auf Standard-C++ setzt, sollte es unter allen Compilern klappen,
Außer natürlidccolang du auf Standard-C++ setzt, sollte es unter allen Compilern kompiliert werden können.
(NNatürlich nur, wenn du keine Sprachmittel bentutz, die nach 1997 dazu gekommen sind :D)
-
The-Kenny schrieb:
Solang du auf Standard-C++ setzt, sollte es unter allen Compilern klappen,
(NNatürlich nur, wenn du keine Sprachmittel bentutz, die nach 1997 dazu gekommen sind :D)
Das große Problem ist, das der C++ Standard von 98 stammt, Compiler aus der Pre-Standard Zeit sowie aus der Umstiegszeit können eben keinen C++ Standard...
Und ich würde mal einen Lehrer darauf aufmerksam machen das sich C++ mit der Zeit ändert (C++98 und vermutlich kommt in 2009 C++0x) und man auch mal mit der Zeit eine aktuallisierung durchführen sollte. Es müsste genügend Compiler geben die auch in Schulumfeld kostenlos zu bedienen sind.
cu André
-
wozu? für borland 5.02 gibs sicherlich ne api doc. dort nachgucken und man weiss, wie die header und funktionen heissen. ob man nun programmieren mit standard c++ lernt oder nicht, spielt doch keine rolle.
-
thordk schrieb:
wozu? für borland 5.02 gibs sicherlich ne api doc. dort nachgucken und man weiss, wie die header und funktionen heissen. ob man nun programmieren mit standard c++ lernt oder nicht, spielt doch keine rolle.
Doch, das spielt schon eine Rolle, denn der C++-Standard ist das, womit man im Zweifelsfall später arbeitet, außerdem ist der Standard weitaus besser designed als andere Bibliotheken; besonders der STL-Teil davon. Es ist also sinnvoll, gerade als Anfänger die gut durchdachte STL statt einer komplexen 3rd-Party-Bibliothek zu verwenden.
-
PS: Ich habe damals auch nach Buch mit Borland 5 oder 6 C++ gelernt und konnte dann auch komplette kleine Anwendungen schreiben … nur: Ich habe *alles* vergessen. Ich musste danach noch einmal komplett neulernen. Es ist nicht eine einzige Sache hängengeblieben.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hab das Problem gelöst hab das jetzt so gemacht
while (datei.good()){anzahl_zeilen++};
-
Eine nette Endlosschleife
Vermutlich solltest du zwischendurch auch deine Datei einlesen, während du die Zeilen zählst.
-
Ich die Datei einfach schon vorher geöffnet.
-
Deswegen ist es aber immernoch eine Endlosschleife. Wo liest du die Daten ein? Das sollte doch wohl in dieser Schleife geschehen.