You are not logged in.

  • Login

EduardKK

Unregistered

1

Thursday, January 5th 2012, 8:03pm

C Programm

Guten Abend allerseits

Ich lerne gerade C programmieren und bin jetzt gerade bei den Dateistreams -- welche mir auch Probleme bereiten. Ich habe hier mal ein kleines Programm geschrieben, welches eigentlich auch funktionieren sollte:

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

int main(int argc, char *argv[])
{
FILE *t;
t=fopen("C:\\Benutzer\\Ferial\\Desktop\\wahreliebe .txt", "w");
fprintf(t, "Ich liebe dich");
fclose(t);

system("PAUSE");
return 0;
}

Mit diesem Programm möchte ich einfach eine Datei erzeugen, welche auf meinem Desktop abgespeichert wird und beschrieben wird. Allerdings passiert nichts, wenn ich dieses Programm ausführe. Gebe ich allerdings keinen Pfad an, so wird das Textdokument einfach in dem Ordner erstellt, in welchem ich auch den Quellcode abgespeichert habe. Ich habe schon so gut wie jeden möglichen Dateipfad versucht... und bei keinem passiert was. Auch wenn ich das Programm zunächst selbst erstelle, wird es dennoch noch nicht einmal beschrieben. Das einzige was ich mal geschafft habe, war ein Programm, welches eine Textdatei, die sich direkt im C-Ordner befand, beschrieben hat [nicht erstellt]. Sonst geht da nix


Ich habe Windows Vista 64bit und benutze den Dev-C++ Compiler 4.9.9.2


Hoffe ihr könnt mir irgendwie helfen, vielen Dank im Voraus

2

Thursday, January 5th 2012, 8:42pm

Soweit ich es in Errinerung habe: sollte der Ordner nicht exestieren wird auch keine Datei angelegt.

Desweiteren heisst der Ordner nicht Benutzer sonder Users (wird jedoch als Benutzer angezeigt).
Der Ordnername ist ab Vista leider nicht immer gleich Ordnerpfad.

Mfg Rushh0ur

3

Thursday, January 5th 2012, 8:43pm

Eigentlich sollte es gehen, zur Hilfe solltest du stets Fehlermeldungen ausgeben. Bei meiner Variante siehst du eine if Abfrage welche überprüft ob der Filepointer gleich null ist und somit die Datei nicht geöffnet werden konnte. Baue dieses doch mal ein und überprüfe ob der Pfad richtig ist.

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
int main(int argc, char *argv[])
{
FILE *t;
t = fopen("C:\\Users\\xxx\\Desktop\\test.txt", "w");
if ( t == NULL ){
	printf("\n Datei konnte nicht geöffnet werden!");
	exit(1);
}
fprintf(t, "Ich liebe dich");
fclose(t);
 
return 0;
}

4

Wednesday, January 25th 2012, 8:27pm

Eigendlich solle alles glattlaufen, der Ordner wird, da du die Datei mit "w" öffnest, angelegt.
Wenn du bei

C/C++ Quellcode

1
2
3
if ((t = fopen("C:\\Users\\xxx\\Desktop\\test.txt", "w")) == NULL) {
 
}

nicht true erhälst kann es eigentlich nur noch an fprintf liegen.
Probier mal fputs().
Es kann natürlich auch sein das die Datei nicht auf deinem Desktop erscheint weil es den Benutzernamen „xxx“ nicht gibt ;)

Social bookmarks