001
05.11.2010, 21:04 Uhr
Hans
Library Walker (Operator)
|
Hi,
also in der Aufgabe steht, dass das Alphabet in eine Datei ausgegeben werden soll, deren Name dem Programm beim Aufruf übergeben wird. D.h. Dein Programm soll in der Lage sein, Parameter zu übernehmen. Das fehlt jedoch bei Dir, denn die main-funktion muss dafür so aussehen:
C++: |
int main(int argc, char *argv[])
|
Die Variablen argc und argv sind dann auszuwerten. Für das Beispiel aus der Aufgabe müsste Dein Programm dann eine Datei mit dem Namen "newfile.txt" erstellen, aber keine "text.txt", wie es in Deinem Code steht. Dann steht in der Aufgabe:
Zitat: |
Verwenden Sie zum Anlegen der Datei die Systemfunktion open(). Sie liefert als R¨uckgabewert einen Filedeskriptor, den Sie beim Schreiben mittels write() benutzen k¨onnen.
|
Diesen Rückgabewert lässt Du jedoch unberücksichtigt, d.h. verfallen. Diesen Filedeskriptor, den Du von open geliefert bekommst, brauchst Du jedoch unbedingt, um mit der Datei überhaupt irgendwas machen zu können. D.h. Du musst ihn in eine Variable übernehmen. Wenn Du das nicht tust, dann wird die Datei zwar sehr wahrscheinlich geöffnet, aber Du hast trotzdem keinen Zugriff darauf. Und ob das öffnen überhaupt klappte, oder vielleicht doch nicht, das erfährst Du auch nicht. Denn wenn es nicht klappte, liefert open einen bestimmten Wert zurück; die Überprüfung, ob man diesen Wert zurück bekommen hat, nennt sich Fehlerbehandlung.
Dann wäre da noch diese Zeile:
C++: |
"text.txt" < write(length,"BJHSDCGJDSBFSJDFV",sizeof(puffer));
|
Die müsstest Du mir bitte mal erklären. Mein Compiler frisst die zwar, allerdings ergibt das bei mir keine Ausgabe.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |