- Registriert
- 09.01.10
- Beiträge
- 261
Ich sitz grad in meiner Programmier-Vorlesung, neues Thema: Dateien erstellen/auslesen/etc. in C++ (In Xcode mit dem Command Line Tool, die neueste Xcode Version ist installiert). Der folgende Code funktioniert wie gewünscht auf den Windows-Rechnern, aber nicht mit meinem Xcode:
In der vorhergehenden Aufgabe wurde folgender Code verwendet, bei dessen Ausführung bei mir auch nichts passiert ist (Auch die Datei wurde nicht geschrieben):
Die Ausgabe sieht auf den Windows Rechnern so aus: testest
Und eine Datei mit dem Namen hello.txt wurde geschrieben und in den Ordner gespeichert, in dem das Programm gespeichert ist.
Für die zweite Aufgabe wurde von Hand eine txt-datei im Ordner erstellt und irgendwas reingeschrieben, ich hab eben versucht eine "Hallo-Input.txt" Datei mit Inhalt testtesttest zu erstellen, hab sie einmal im Ordner mit der xcodeproj-Datei und im Ordner mit der cpp-Datei gespeichert, aber mit dem Versuch ohne eine Datei das Programm auszuführen kam alle drei Male bei Xcode
.
Kann mir vielleicht bitte jemand korrigieren, was geändert/hinzugefügt werden muss, damit eine Datei geschrieben wird und die Ausgabe aussieht wie verlangt (Also dass beim zweiten Mal der Inhalt der Datei ausgegeben wird, jeder Buchstabe in einer neuen Zeile (->
)?
Da ich nicht der einzige Macuser in der Vorlesung bin danke ich stellvertretend für alle hier für jede Hilfe!
Code:
[COLOR=#008326]//Einfaches Beispiel für Datei-Ausgabe[/COLOR][COLOR=#7a482f]#include [COLOR=#d62b24]<stdio.h>[/COLOR][/COLOR]
[COLOR=#bf2e9d]int[/COLOR] main()
{
[COLOR=#008326][COLOR=#000000] [/COLOR]//Jetzt den Datei-Zeiger deklarieren[/COLOR]
[COLOR=#7340a3]FILE[/COLOR]* in;
[COLOR=#008326][COLOR=#000000] [/COLOR]//Dateinamen als String festlegen[/COLOR]
[COLOR=#d62b24][COLOR=#000000] [/COLOR][COLOR=#bf2e9d]char[/COLOR][COLOR=#000000] filename[]=[/COLOR]"Hallo-Input.txt"[COLOR=#000000];[/COLOR][/COLOR]
[COLOR=#008326][COLOR=#000000] [/COLOR]//Diese Datei öffnen, als "READ-ONLY" Textdatei.[/COLOR]
in=[COLOR=#3f217c]fopen[/COLOR](filename, [COLOR=#d62b24]"rt"[/COLOR]);
[COLOR=#008326][COLOR=#000000] [/COLOR]//Prüfen, ob Datei nicht erfolgreich geöffnet wurde[/COLOR]
[COLOR=#bf2e9d]if[/COLOR](in==[COLOR=#bf2e9d]NULL[/COLOR])
{
[COLOR=#008326][COLOR=#000000] [/COLOR]//Fehlermeldung am Screen ausgeben[/COLOR]
[COLOR=#d62b24][COLOR=#000000] [/COLOR][COLOR=#3f217c]printf[/COLOR][COLOR=#000000]([/COLOR]"\n ERROR! File %s could not be opened!"[COLOR=#000000],filename);[/COLOR][/COLOR]
}
[COLOR=#008326][COLOR=#000000] [/COLOR]//Datein zeichenweise einlesen in einer do while Schleife![/COLOR]
[COLOR=#bf2e9d]char[/COLOR] zeichen;
[COLOR=#bf2e9d]do[/COLOR] {
[COLOR=#008326][COLOR=#000000] [/COLOR]//Einzelnes Zeichen aus der Datei lesen[/COLOR]
zeichen=[COLOR=#3f217c]getc[/COLOR](in);
[COLOR=#008326][COLOR=#000000] [/COLOR]//Ausgabe dieses Zeichens auf dem Screen[/COLOR]
[COLOR=#3f217c]printf[/COLOR]([COLOR=#d62b24]"\n%c"[/COLOR],zeichen);
[COLOR=#008326][COLOR=#000000] } [/COLOR][COLOR=#bf2e9d]while[/COLOR][COLOR=#000000] (zeichen != [/COLOR][COLOR=#7a482f]EOF[/COLOR][COLOR=#000000]); [/COLOR]//solange das gelesene Zeichen KEIN "End of File" ist[/COLOR]
[COLOR=#008326][COLOR=#000000] [/COLOR]//Datei schliessen[/COLOR]
[COLOR=#3f217c]fclose[/COLOR](in);
[COLOR=#d62b24][COLOR=#000000] [/COLOR][COLOR=#3f217c]printf[/COLOR][COLOR=#000000]([/COLOR]"\nDatei %s geschlossen"[COLOR=#000000],filename);[/COLOR][/COLOR]
[COLOR=#bf2e9d]return[/COLOR] [COLOR=#2832cf]0[/COLOR];
}
In der vorhergehenden Aufgabe wurde folgender Code verwendet, bei dessen Ausführung bei mir auch nichts passiert ist (Auch die Datei wurde nicht geschrieben):
Code:
[COLOR=#008326]//ps2800i1.cpp, 2063621,Tenbrink,Jannis[/COLOR][COLOR=#008326]//Einfaches Beispiel für Datei-Ausgabe[/COLOR]
[COLOR=#7a482f]#include [COLOR=#d62b24]<stdio.h>[/COLOR][/COLOR]
[COLOR=#bf2e9d]int[/COLOR] main()
{
[COLOR=#008326][COLOR=#000000] [/COLOR]//Jetzt den Datei-Zeiger deklarieren[/COLOR]
FILE* out;
[COLOR=#008326][COLOR=#000000] [/COLOR]//Dateinamen als String festlegen[/COLOR]
[COLOR=#bf2e9d]char[/COLOR] filename[]=[COLOR=#d62b24]"hello.txt"[/COLOR];
[COLOR=#008326][COLOR=#000000] [/COLOR]//Diese Datei öffnen, als "writable" Textdatei.[/COLOR]
out=fopen(filename, [COLOR=#d62b24]"wt"[/COLOR]);
[COLOR=#008326][COLOR=#000000] [/COLOR]//Prüfen, ob Datei nicht erfolgreich geöffnet wurde[/COLOR]
[COLOR=#bf2e9d]if[/COLOR](out==[COLOR=#bf2e9d]NULL[/COLOR])
{
[COLOR=#008326][COLOR=#000000] [/COLOR]//Fehlermeldung am Screen ausgeben[/COLOR]
[COLOR=#d62b24][COLOR=#000000] printf([/COLOR]"\n ERROR! File %s could not be opened!"[COLOR=#000000],filename);[/COLOR][/COLOR]
}
[COLOR=#008326][COLOR=#000000] [/COLOR]//Irgend einen Text in die Datei reinschreiben[/COLOR]
[COLOR=#D62B24][COLOR=#000000] fprintf(out,[/COLOR]"testest"[COLOR=#000000],zahl);[/COLOR][/COLOR]
[COLOR=#008326][COLOR=#000000] [/COLOR]//Datei schliessen[/COLOR]
fclose(out);
[COLOR=#bf2e9d][COLOR=#000000] [/COLOR]return[COLOR=#000000] [/COLOR][COLOR=#2832cf]0[/COLOR][COLOR=#000000];[/COLOR][/COLOR]
}
Die Ausgabe sieht auf den Windows Rechnern so aus: testest
Und eine Datei mit dem Namen hello.txt wurde geschrieben und in den Ordner gespeichert, in dem das Programm gespeichert ist.
Für die zweite Aufgabe wurde von Hand eine txt-datei im Ordner erstellt und irgendwas reingeschrieben, ich hab eben versucht eine "Hallo-Input.txt" Datei mit Inhalt testtesttest zu erstellen, hab sie einmal im Ordner mit der xcodeproj-Datei und im Ordner mit der cpp-Datei gespeichert, aber mit dem Versuch ohne eine Datei das Programm auszuführen kam alle drei Male bei Xcode

Kann mir vielleicht bitte jemand korrigieren, was geändert/hinzugefügt werden muss, damit eine Datei geschrieben wird und die Ausgabe aussieht wie verlangt (Also dass beim zweiten Mal der Inhalt der Datei ausgegeben wird, jeder Buchstabe in einer neuen Zeile (->
Code:
//Einzelnes Zeichen aus der Datei lesen zeichen=getc(in);
//Ausgabe dieses Zeichens auf dem Screen
printf("\n%c",zeichen);
} while (zeichen != EOF); //solange das gelesene Zeichen KEIN "End of File" ist
Da ich nicht der einzige Macuser in der Vorlesung bin danke ich stellvertretend für alle hier für jede Hilfe!