» Daten einlesen

Mittelwert Funktion in CNeuen Thread eröffnenNeue Antwort erstellenProblem bei der Programmausführung C unter Windows
AutorNachricht
Beobachter 
Anmeldedatum: 12.01.2012
Beiträge: 1
Chats: 0
12.01.2012, 15:02
zitieren

Hallo!

Ich möchte Daten aus einer Textdatei einlesen.
Dazu habe ich folgendes programmiert:

#include <stdio.h>
#include <stdlib.h>

int main(void) {

FILE * file;
char line[10];

file = fopen("ex1.txt","r");

if (file){

  while (!feof(file)){

    fgets(line,10,file);
    printf("line: %s",line);

  } //(!feof(file))

}// if (file)

fclose(file);
return EXIT_SUCCESS;
}

Das funktioniert soweit,aber ich habe einen seltsamen Effekt, den ich mir nicht erklären kann.


Wenn ich folgende Datei einlese:
10
20
30
40

bekomme ich als Ausgabe:

line: 10
line: 20
line: 30
line: 40
line: 40

also die letzte Zeile doppelt.

Warum ist das so? eigentlich sollte das Dateiende doch bei 40 erreicht sein?


pn
Junior 
Geschlecht:
Fahrzeug: Yamaha YZF R6 Thundercat
Anmeldedatum: 15.07.2012
Beiträge: 55
Chats: 24
Wohnort: Die Stadt war einmal Bischhofsitz der Oberpfalz....
15.08.2012, 15:59
zitieren

Hier eine mögliche Erklärung:

Die while-Schleife wird solange ausgeführt, bis feof
den Wert 1 zurückgibt, der bei feof das Dateiende anzeigt.
Zunächst wird aber der nächste String mit fgets eingelesen.
Bei noch nicht erreichten Dateiende wird der String in line
eingelesen. Falls jedoch das Dateiende erreicht ist, wird der
String line nicht überschrieben und zunächst ausgedruckt.
Der zuletzt eingelesene String wird 2mal angezeigt.
Erst dann wird das Programm beendet.

Korrigierte Fassung hier:


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int main(void) {

FILE * file;
char line[10];

file = fopen("ext1.txt","r");


if (file)
{

while (!feof(file))
 {
  fgets(line,10,file);
  if((feof(file)) == 0)
   printf("line: %s",line);
  else
   printf("\nDateiende erreicht");
 }

}
 else
 printf("\nDatei nicht gefunden");
fclose(file);
printf("\nZum beenden des Programms bitte Taste druecken");
getch();
return 0;
}


Manchmal haben auch alte Compiler einen Wert fürs lernen.
Gruß Guiseppe


 1x  bearbeitet
pn
Gast 
15.08.2012, 15:59
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "Daten einlesen" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Programm zum Einlesen von Dateien
Hallo, ich bin im Bereich der Programmierung (bis auf Access) komplett unerfahren, daher suche ich hier Hilfe. Folgende Aufgabenstellung: Ich speichere Emails (Anzahl unbekannt) aus einem Emailprogramm heraus in einen bestimmten Ordner. Die Daten...
[Allgemein]von Maik6464
1
139
27.02.2011, 15:07
Maik6464
externe Datei als Tabelle "wikitable" einlesen
Hallo, bin auf der Suche nach einer Möglichkeit z.B. eine Textdatei mit Formatierung einer Wiki Tabelle als Inhalt einzulesen und diese auf einer Wiki-Seite anzuzeigen. Hier mal ein Beispiel einer solchen Text Datei &#123;|...
von sfab85
4
2.169
13.02.2014, 13:25
sfab85
MAP Daten
Ich bin auf dem Thema noch nicht so fit, daher auch meine Frage. Sind die MAP Daten der D16Y7 DK identisch mit der der D16Y8 DK? Hab die Vermuntung das mein MAP Sensor kaputt ist und habe noch einen vom D16Y7 da...
von Asimo1980
0
114
10.07.2013, 18:05
Asimo1980
Technische Daten
Honda NSR 75 Motor Wassergekühlter 2-Takt Einzylinder Bohrung x Hub 48mm x 41,4mm Hubraum 74,9cm³ Verdichtung 7.2 : 1 Vergaser HM 18mm, 115 Hauptdüse Leistung 5kW/6,8PS 9kW/12,2PS Zündung Capacitor Discharge...
von 2012 Maya Ns1 freak
0
906
09.12.2009, 09:28
2012 Maya Ns1 freak
Hubraum Daten Please Help
Hi. Hat jemand mal einen link wo ich alle Hubraum Daten Für civic 92-96 ansehen kann. Wo mann die werte mal vergleichen kann. Deie einzelnen motorenD15,16 Wäre nett Danke...
von Blue-Sonic
5
146
09.09.2008, 07:25
gigiagig
Drehmoment daten
moin moin kann mir jemand bitte die drehmoment daten geben für die schrauben um den kopf neu raufzusetzen ?? habe meine verschusselt ..... ...
von technohase19
0
310
30.12.2011, 17:59
technohase19
Integra Daten
Abend, ich brauche so schnell wie möglich vom Integra die Schlüsselnummer Zu1 und Zu 2. Dazu brauche ich noch die...
von Crx87
7
438
24.04.2012, 20:57
Kwik-A-Mart
2.2 CDTI Daten??
hi, hab paar fragen zu nem 2.2 cdti, welcher leider dieseltypisch nicht getreten wird, wodurch sich das agr so zugesetzt hat, das der lader erst ab 3000rpm einsetzte.... nach bissl saubermachen und etwas freifahren ging das auto schon relativ...
von Dancing Panda
5
248
23.05.2013, 05:01
Lu Ping
Daten auslesen?
Hallo Leute, weiss einer wie man die Daten wie U/Min, Fehlercodes usw mit dem Laptop auslesen kann bzw. wo es dafür die notwendigen Kabel und Software gibt bzw geht des überhaupt beim...
von Fakie
2
774
10.02.2006, 11:05
M-Tec-R
D13B2 Daten
Hat wer die Daten um vernünftig eine Kompression zu berechnen mit D16z6 Kopf Im Internet kusieren ja so einige Daten rum, aber welche jetzt genau stimmen? Keine Ahnung Die die ich habe sind: Bore: 75mm Stroke: 76mm Die die ich gefunden habe (vllt. kann...
von MaRtInW2
4
435
04.07.2013, 15:31
MaRtInW2
© 2004 - 2016 www.programmierer-forum.de | Communities | Impressum |