Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />
21.1 Die Standardkanäle std<strong>in</strong>, stdout <strong>und</strong> stderr<br />
Es gibt drei Dateien, <strong>die</strong> immer geöffnet s<strong>in</strong>d: std<strong>in</strong>, stdout <strong>und</strong> stderr. stdout <strong>und</strong><br />
stderr s<strong>in</strong>d normalerweise mit dem Bildschirm verb<strong>und</strong>en, std<strong>in</strong> ist mit der Tastatur verb<strong>und</strong>en.<br />
Alle IO-Funktionen (wie pr<strong>in</strong>tf, getchar, puts...) welche ke<strong>in</strong> Dateiobjekt erwarten, benutzen<br />
implizit <strong>die</strong>se Dateien. Zum Beispiel hat fpr<strong>in</strong>tf(stdout, "Hallo") den selben Effekt wie<br />
pr<strong>in</strong>tf("Hallo").<br />
21.2 Beispiele<br />
Beispiel für <strong>die</strong> Arbeit mit Textdateien<br />
Das folgende Programm öffnet <strong>die</strong> Datei Test.txt, liest deren Inhalt zeilenweise <strong>und</strong> schreibt <strong>die</strong><br />
gelesenen Zeilen mit vorangestellter Zeilennummer <strong>in</strong> <strong>die</strong> Datei Test.out.<br />
#<strong>in</strong>clude <br />
#<strong>in</strong>clude <br />
<strong>in</strong>t ma<strong>in</strong>(<strong>in</strong>t argc, char *argv[])<br />
{<br />
char *InputFileName = "test.txt";<br />
char *OutputFileName = "test.out";<br />
FILE *InputFile, *OutputFile;<br />
}<br />
/* Dateien oeffnen <strong>und</strong> auf Fehler Pruefen */<br />
InputFile = fopen(InputFileName, "r");<br />
if (InputFile != NULL) {<br />
OutputFile = fopen(OutputFileName, "w");<br />
if (OutputFile != NULL) {<br />
<strong>in</strong>t ZeilenNummer = 1;<br />
/* Solange das Dateiende nicht erreicht ist */<br />
while (!feof(InputFile)) {<br />
char Buffer[200];<br />
}<br />
/* Zeile e<strong>in</strong>lesen... */<br />
if (fgets(Buffer, 200, InputFile) != NULL) {<br />
/* ...<strong>und</strong> mit vorangestellter Zeilennummer wieder ausgeben */<br />
fpr<strong>in</strong>tf(OutputFile, "%04d: %s", ZeilenNummer, Buffer);<br />
}<br />
ZeilenNummer++;<br />
/* Dateien wieder schliessen */<br />
fclose(OutputFile);<br />
} else {<br />
pr<strong>in</strong>tf("Sorry, could not open '%s' for write\n", OutputFileName);<br />
pr<strong>in</strong>tf("Errorcode was %d\n", errno);<br />
perror("Errormessage: ");<br />
}<br />
fclose(InputFile);<br />
} else {<br />
pr<strong>in</strong>tf("Sorry, could not open '%s' for read\n", InputFileName);<br />
pr<strong>in</strong>tf("Errorcode was %d\n", errno);<br />
perror("Errormessage: ");<br />
}<br />
system("PAUSE");<br />
return 0;<br />
Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 85/147