Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
double Werte aus file in Array einlesen

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
scouty66
Gast





BeitragVerfasst am: 09. Apr 2006 18:13   Titel: double Werte aus file in Array einlesen

Hallo
ich habe ein txt-file mit 1000 Zeilen in denen je 3 double Werte stehen durch ein Leerzeichen getrennt. Diese Werte möchte ich jetzt in ein Array mit 1000 Zeilen und 3 Spalten einlesen.
Mache ich das mit fscanf oder mit fread oder lese ich ganze Zeilen ein?
Ich beschäftige mich gerade eine Woche mit C und habe irgendwie kein Plan


Sad
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 09. Apr 2006 18:50   Titel: Re: double Werte aus file in Array einlesen

scouty66 hat folgendes geschrieben::
Hallo
ich habe ein txt-file mit 1000 Zeilen in denen je 3 double Werte stehen durch ein Leerzeichen getrennt. Diese Werte möchte ich jetzt in ein Array mit 1000 Zeilen und 3 Spalten einlesen.
Mache ich das mit fscanf oder mit fread oder lese ich ganze Zeilen ein?
Ich beschäftige mich gerade eine Woche mit C und habe irgendwie kein Plan

Am besten macht man solche String-Zahlenverarbeitung mit einer Skriptsprache, nicht mit C. Aber da du es nunmal so haben wolltest:

Code:

struct { double a,b,c; } triplets[1000];
int i;
for (i=0;i<1000;i++)
{
    fscanf(stdin,"%lf %lf %lf\n",&(triplets[i].a),&(triplets[i].b),&(triplets[i].c));
}



Man beachte, das hier die Verarbeitung irgendwelcher Fehlersituationen komplett fehlt. Das ist in C auch sehr schwierig. Deshalb macht man so etwas normalerweise nicht in C.

Janka
 
Benutzer-Profile anzeigen Private Nachricht senden

emeusel



Anmeldungsdatum: 22.04.2006
Beiträge: 2

BeitragVerfasst am: 22. Apr 2006 16:26   Titel: Re: double Werte aus file in Array einlesen

Janka hat folgendes geschrieben::

Man beachte, das hier die Verarbeitung irgendwelcher Fehlersituationen komplett fehlt. Das ist in C auch sehr schwierig. Deshalb macht man so etwas normalerweise nicht in C.


Zitat:
These functions return the number of input items successfully matched and assigned, which can be fewer than provided for, or even zero in the event of an early matching failure.


So steht's in der Manpage zu fscanf. Was ist also daran schwierig, den Returnwert von fscanf() auszuwerten und entsprechend zu reagieren?
_________________
lg
Erik
 
Benutzer-Profile anzeigen Private Nachricht senden

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 22. Apr 2006 20:13   Titel: Re: double Werte aus file in Array einlesen

emeusel hat folgendes geschrieben::

Zitat:
These functions return the number of input items successfully matched and assigned, which can be fewer than provided for, or even zero in the event of an early matching failure.

So steht's in der Manpage zu fscanf. Was ist also daran schwierig, den Returnwert von fscanf() auszuwerten und entsprechend zu reagieren?

Weil du den Grund, *warum* das matching fehlgeschlagen ist, nicht erfährst, z.B.. So kann der Anwender unmöglich in seinen Daten auf Fehlersuche gehen.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

emeusel



Anmeldungsdatum: 22.04.2006
Beiträge: 2

BeitragVerfasst am: 22. Apr 2006 20:36   Titel: Re: double Werte aus file in Array einlesen

[quote="Janka"]
emeusel hat folgendes geschrieben::

Weil du den Grund, *warum* das matching fehlgeschlagen ist, nicht erfährst, z.B.. So kann der Anwender unmöglich in seinen Daten auf Fehlersuche gehen.

Zähl eine Zeilennummer mit hoch und wirf die Werte raus... Alles nicht sehr schwer.
_________________
lg
Erik
 
Benutzer-Profile anzeigen Private Nachricht senden

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 22. Apr 2006 21:13   Titel: Re: double Werte aus file in Array einlesen

emeusel hat folgendes geschrieben::
Janka hat folgendes geschrieben::

Weil du den Grund, *warum* das matching fehlgeschlagen ist, nicht erfährst, z.B.. So kann der Anwender unmöglich in seinen Daten auf Fehlersuche gehen.

Zähl eine Zeilennummer mit hoch und wirf die Werte raus... Alles nicht sehr schwer.

Ja, in diesem speziellen Fall nicht. In diesem speziellen Fall (lernen wie's geht) kommt man auch ohne Fehlerbehandlung aus.

Kurzum: Wo eine Skriptsprache ohne jedes zutun eine informative Fehlermeldung ausspuckt (evtl. sogar noch den mit Daten behafteten Stacktrace), und man Maßnahmen ergreifen muss, die Meldungsflut in geordnete Bahnen (Log) zu lenken, geben C-Funktionen genau *einen* Wert zurück, und setzen gegebenenfalls noch errno. Den gesamten Kontext muss man sich selbst merken. Das *ist* schwierig, wenn man tatsächlich alle Fehlersituationen aussortieren will.

Und was machst du eigentlich, wenn die Fehlersituation in den Tiefen der Funktionsaufrufe erkannt wird? Du musst sie den ganzen Weg zurück durchreichen. Try/Catch gibt es in C nicht.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy