Pfad
-
f=fopen("\"c:\\Dokumente und Eigenschaften\\Benutzer\\Desktop\\Text.txt\"","r");
Das mit den Anführungszeichen hat nicht funktioniert und ich bin mir 100% sicher, dass der Pfad stimmt.
_____
-
Dann pack doch die Datei mal nach C:\. Dann nach c:\\Dokumente und Eigenschaften .. usw.
-
es gibt kein "Dokumente und Eigenschaften"
es heisst Einstellungenerklaer wie es zu dem fehler kommen konnte und warum du ihn nicht selber gefunden hast.
-
Sorry, aber es geht auch nicht mit diesem Pfad:
f=fopen("\"C:\\Dokumente und Einstellungen\\Benutzer\\Desktop\\Text.txt\"","r");
-
Hi!
f=fopen("C:\\dokume~1\\benutzer\\desktop\\text.txt", "r");
und so gehts auch nicht?
-
-
Blöde Frage, aber bist du sicher, dass dein Benutzername "Benutzer" ist?!
-
Nein der Benutzer heißt natürlich nicht Benutzer, aber ich will nicht dem ganzen www meinen Benutzernamen sagen. Ich setz nur in meinem Script den richtigen Benutzernamen ein.
____
-
Vielleicht kann ja einer von euch das Programm mal auf seinem PC schreiben. Wenn das klappt, heißt das, dass mein Pfad falsch ist, wenn nicht, dann weiss ich auch nicht weiter!
Hier ist das Programm:
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE *f; f=fopen("\"C:\\Dokumente und Einstellungen\\Benutzer\\Desktop\\Text.txt\"","r");//Der Benutzer muss angeglichen werden! if(f==NULL) { printf("Datei konnte nicht geoeffnet werden!\n"); } else { printf("Datei konnte geoeffnet werden\n"); } system("PAUSE"); return 0; }
Derjenige, der das Programm schreibt, muss natürlich auch die Text-Datei Text.txt auf dem Desktop erzeugen.
_________________
-
Schonmal versucht die Leerzeichen zu escapen?
// Kenn die genaue Syntax leider nicht Dokumente\ und\ Einstellungen
-
Ihr seid sämtlich auf dem falschen Dampfer. Wenn ihr hier ernsthaft vorschlagt, dass der Pfad escapet werden soll, dann habt ihr den Sinn von Escape-Zeichen nicht wirklich verstanden. Es würde mich sehr wundern, wenn fopen von Leerzeichen aus dem Gleichgewicht kommt, das wär ein ziemlich offensichtlicher Bug in der Standardlibrary.
Zum Ursprungsposter: Da kann ich nur fragen, erstens welchern Compiler nutzt du? Zweitens, woher weißt du, dass "er" nur "C:\\Dokumente" annimmt? Dein Programm enthält keine Ausgabe, und selbst wenn, gibt es eh keine Möglichkeit herauszubekommen, welche Datei fopen versucht zu öffnen. Was verschweigst du noch? Bitte ein komplettes Programm posten, das den Fehler zeigt. Aufgrund deiner Formulierung ("dass er nicht den kompletten Pfad liest...") vermute ich, dass du vorher noch eine Eingabe machst, vermutlich mit scanf("%s"...), welches beim ersten Leerzeichen abbricht ... in dem Fall würde ich zu fgets raten.
-
Felix15 schrieb:
Vielleicht kann ja einer von euch das Programm mal auf seinem PC schreiben. Wenn das klappt, heißt das, dass mein Pfad falsch ist, wenn nicht, dann weiss ich auch nicht weiter!
Versuch mal
f=fopen("C:\\DOKUME~1\\Benutzer\\Desktop\\hhh.txt","r");
DOKUME~1 grossschreiben - 8 Zeichen Win-Konsole
-
Felix15 schrieb:
Mein Problem ist eben, dass er nicht den ganzen Pfad liest, sondern nur c:\\Dokumente. Gibt es da eine Möglichkeit den Pfad anders zu schreiben?
Woher willst du das eigentlich wissen?
-
Also irgendwas muss bei dir völlig schief laufen.
Ein kleine Code zur Kontrollausgabe:#include <stdio.h> #include <stdlib.h> #define DATEI "C:\\Dokumente und Einstellungen\\Benutzer\\Desktop\\Text.txt" int main(void) { FILE *f = NULL; if((f = fopen(DATEI, "r")) == NULL) printf("Fehler beim öffnen von %s\n", DATEI); else printf("%s wurde geöffnet\n", DATEI); return EXIT_SUCCESS; }
ergibt bei mir:
Fehler beim öffnen von C:\Dokumente und Einstellungen\Benutzer\Desktop\Text.txt
Mal nicht vom Fehler irritieren lassen, ich nutze FreeBSD, und da gibt es kein "C:" und auch kein "\"
.
Wichtig ist nur der Pfad, und der stimmt.