JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=1c9fcb91b52985b6f2002eb172e92ef5Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Streams und ich find den Fehler nicht

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Nahar
Senior JLI'ler


Alter: 36
Anmeldedatum: 16.07.2003
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 10:01    Titel: Streams und ich find den Fehler nicht Antworten mit Zitat

Naja, das übliche: Daten aus einer Datei auslesen. Aber ich find halt genialerweise meinen Fehler nicht.

So sieht die Datei aus:
Code:

1.545   8.55   Spieler1
45.22   78.5   Kamera


Ich will Feststellen wieviele Datensätze in der Datei drin sind:
Code:

for(int c=0;!lesen.eof();c++)
{
lesen >> Floatvariable;
lesen >> Floatvariable;
lesen >> string;
cout << Floatvariable << "\t" << Floatvariable << "\t" << string;
}


Aber irgendwie bleibt es immer an der ersten Zeile hängen, undversucht die hundertfach auszulesen. Zumindest gib es die vielfach aus.
Sieht irgendjemand den Fehler? Danke.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 10:25    Titel: Antworten mit Zitat

Ich arbeite zwar nicht mit Streams, aber du liest eine Zeichenkette aus!
Und musst dann den ersten Teil der Zeichenkette in eine float Variable umwandeln. Mir fehlt im Moment nur eine Umwandlungsfunktion ein atoi() such danach in der MSDN und dann müsstest du schnell durch Links die du dort findest zu deiner Funktion kommen die ein String in eine Float Variable konventiert.

Das sähe dann so aus:

char string[] = "3.14";

float eine_float_var = entsprechende_funktion(string);

...
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Nahar
Senior JLI'ler


Alter: 36
Anmeldedatum: 16.07.2003
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 10:30    Titel: Antworten mit Zitat

Die Funktion heisst atof
Aber der Vorteil an Streams ist das sie eben beim einlesen (falls möglich) das richtige Format auslesen.
Das ist schon eine floatvariable, und der WErt ist auch richtig. Das Problem ist das das Programm eben nicht zur zweiten Zeile uspringt, sodner da hängen bleibt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 10:59    Titel: Antworten mit Zitat

Is das ne Text oder ne Binärdatei? In einer Binärdatei gibts ja "nich" Zeilen in diesem Sinne, un da wird der Dateipointer automatisch immer auf den nächsten Datensatz gesetzt, wenn du mithilfe des Operators << einen Datensatz gelesen hast...

Wenn das eine Textdatei ist, was ich vermute, würde ich dir empfehlen die Daten mittels getline() zu lesen, un anschließend die strings umzuwandeln...

Wie immer keine Gewähr Cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Nahar
Senior JLI'ler


Alter: 36
Anmeldedatum: 16.07.2003
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 11:32    Titel: Antworten mit Zitat

Ist eine Textdatei. Aber ich hab mir das jetzt schon in dne Kopf gesetzt es so machen zu wollen... menno Smile. Naja, einstweilen werd ichs so machen, aber wenn jemand weiss an was es liegen könnte... - es interessiert mich immer noch.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 12:27    Titel: Antworten mit Zitat

nimm doch einfach eine Struktur?

Speichere dort die Werte rein, speichere die Struktur in die Datei und lies sie dann später wieder aus.
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Nahar
Senior JLI'ler


Alter: 36
Anmeldedatum: 16.07.2003
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 12:39    Titel: Antworten mit Zitat

Danke für die Antworten. Des Rätsels lösung war die Klasse string. Mit handelsüblichen C-Strings hats getan.

Aber mal was anderes: Wie kann den Pointer für Streams wieder auf Dateianfang setzten? ifstream.seekg(0,ios_base::beg) hat bei mir irgendwie keinen Effekt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum