Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: DOS und Win32-Konsole ::  Mit while-Schleife Zeichen einlesen     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
matthias12345
Mitglied

Benutzerprofil
Anmeldungsdatum: 13.08.2010
Beiträge: 1
Beitrag matthias12345 Mitglied 11:53:03 13.08.2010   Titel:   Mit while-Schleife Zeichen einlesen            Zitieren

Hallo, habe folgendes Problem:
#include <stdio.h>

#define BUF 13

void main()
{
FILE *pfile;
char line[BUF];
char dateiname[62];
unsigned long index1=1;


printf ("Bitte geben Sie den Dateipfad der zu Oeffnenden Datei ein:\n");
scanf ("%61s", dateiname);

pfile = fopen (dateiname, "r");


while (fgets (line, BUF, pfile) != NULL)
{
printf("\nZeile %ld wird gelesen! - %s", index1, line);
index1++;

}
system("PAUSE");
}

Wenn ich das Programm nun zum ausführen bringe erscheint im DOS Fenster folgendes:
...
Zeile 1 wird gelesen! - 123456789012
Zeile 2 wird gelesen! -

Zeile 3 wird gelesen! - 123456789012
Zeile 4 wird gelesen! -

Zeile 5 wird gelesen! - 123456789012
...
Warum zeigt es 5 Zeilen an obwohl ich nur 3 in die .txt Datei geschriebe habe???
Bitte um Hilfe!
Wutz
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.04.2010
Beiträge: 2103
Beitrag Wutz Mitglied 13:27:40 13.08.2010   Titel:              Zitieren

Forum ANSI C wäre passender.

fgets liest gemäß Standard maximal n-1==12 Zeichen ein oder endet beim vorigen Auftreten von '\n'. Das an 13. Stelle stehende \r\n bzw. \n in deiner Datei wird durch das nächste fgets gelesen und anschließend auch ausgegeben, wie man sieht.

int main() ist Standard, void main() nicht.

_________________
Java, the best argument for Smalltalk since C++. -- Frank Winkler
C/C++ Forum :: DOS und Win32-Konsole ::  Mit while-Schleife Zeichen einlesen   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.