mikrocontroller.net

Forum: PC-Programmierung Endlose schleife


Autor: C beginner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi alle!
aus einer binären File will ich Daten auslesen.
for(;;)
{
fread(Daten1 lesen);//wenn ich hier break anwende dann kann ich die 
anderen     Daten nicht auslesen
fread(Daten2 lesen);usw..
}
printf(Daten1 ausgeben);//aber hier müssen die daten,die für den ersten 
Durchlauf waren gezeigt werden.
Ich hoffe dass meine frage deutlich ist.
mfg
r.To

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Respekt! Ohne Fragezeichen trotzdem eine Frage stellen zu wollen...

Ich persönlich sehe da zumindest keine Frage.

Autor: C beginner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok sorry!
wie kann ich die letzte Ausgabe(printf) realisieren?
mfg

Autor: M. V. (-_-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, sag uns doch erstmal, was du eigentlich machen willst.
Ich denke nicht, dass alle hier Lust haben, nur mal so ins Blaue hinein 
zu raten.

Willst du jeweils die Daten auslesen, und dann ausgeben? Wieso setzt du 
dann nicht das printf direkt hinter das fread?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wahrscheinlich ist das printf nicht direkt hinter dem fread, damit er 
von den  Textausgaben nicht erschlagen wird. Dann ergibt sich jedoch die 
Frage, ob die Daten unbedingt in einer Endlosschleife ausgelesen werden 
müssen. Normalerweise programmiert man nach EVA (Eingabe - Verarbeitung 
- Ausgabe).

Autor: Uwe Berger (boerge) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mal ne Frage, kannst du auch mal Klartext reden/schreiben...? Irgendwie 
lese ich nur wirres Zeugs!

Autor: C beginner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok ich denke,dass die frage nicht deutlich war.Also die Daten müssen mit 
einer endlose schleife augelesen werden.im schleife(drin) hab ich ein 
bereich definiert fuer mein daten.Wenn das Bereich ueberschritten ist 
dann break.
Die erste fread(Daten 1-->lesen) will ich spaeter als parameter 
verwenden,wenn ich alle Daten aus meiner File gelesen haben.Die variable 
Daten 1 ist wie ein zeitstempel und fuer jeden for durchlauf krieg ich 
neuen wert fuer Daten 1.
Aber ich brauche bestimmt  den ersten Zeitstempelwert.
for(;;)
{
fread(&datastruct,sizeof(datastruct),1,fp);
if(datenberich ueberschritten)break;
fread(Daten 1);
fread(daten 2);
usw..
}
  y=Daten 1; //  hier will ich den wert vom Daten 1 was am anfang 
ausgelesen ist
ich hoffe,dass mein Problem deutlichen geworden ist.
mfg

Autor: Uwe Berger (boerge) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. du redest noch immer wirres Zeugs, aber ich meine zu verstehen, was 
du willst...

2. warum willst du in einer Endlosschleife soetwas machen. Besser ist 
eine while-Schleife, bei der dann eine sinnvolle Abbruchbedingung 
gesetzt ist.

3. dann merke dir die Daten aus dem 1. Read auf einer gesonderten 
Variablen und alle anderen Daten auf einer weiteren.

Grüße Uwe

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
yes_sir_habe_gelesen = 0;
for(;;)
{
  fread(Daten1 lesen);
  if (!yes_sir_habe_gelesen)
    printf(Daten1 ausgeben);
  yes_sir_habe_gelesen = 1;
  fread(Daten2 lesen);usw..
}

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also die Daten müssen mit einer endlose schleife augelesen werden.

Warum?

> im schleife(drin) hab ich ein bereich definiert fuer mein daten.Wenn
> das Bereich ueberschritten ist dann break.

Warum machst du nicht eine normale Schleife, die die Bedingung prüft 
statt einer "Endlosschleife", die irgendwo mittendrin rausspringt?

> Die erste fread(Daten 1-->lesen) will ich spaeter als parameter
> verwenden,wenn ich alle Daten aus meiner File gelesen haben.

In der Leseschleife?

> for(;;)
> {
> fread(&datastruct,sizeof(datastruct),1,fp);
> if(datenberich ueberschritten)break;
>fread(Daten 1);
>fread(daten 2);
> usw..
> }
>  y=Daten 1; //  hier will ich den wert vom Daten 1 was am
                  anfang ausgelesen ist

Warum schiebst du das if nicht an das Ende der Schleife?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.