Unbekannten Pfad öffnen

cwriter

Erfahrenes Mitglied
Hallo Forum

Ich bin neu hier, schreibe in C und brauche eure Hilfe:

Wie kann man einen unbekannten Pfad öffnen?

Bsp.:
FILE*f;
f=fopen("C:\\Desktop","w+");

Um die Frage zu präziseren:
Wie kann ich eine Datei ohne die Register speichern -> Also ohne "Users\\Beispiel\\"?

Vielen Dank für die Hilfe!

cwriter
 
Zuletzt bearbeitet:
Ich sehe nicht, wo du hier einen "unbekannten Pfad" verwendest, deine sind wohl-definiert. Oder meinst du die Pfade, die ein User in seinen Environment-Variablen stehen hat? Dann wäre die Frage, welchen Compiler du verwenden willst.
 
Das verstehe wiederum ich nicht ganz:confused:

Ich benutze Dev-C++, Version 5 Beta.

Ich bin mir allerdings nicht ganz sicher, ob das an der Beta-Version liegt; diese akzeptiert manchmal das "FILE*f;" nicht, es steht dann: "Syntax Error before "f" token".

Kann dieses Problem daran liegen?

Vielen Dank!

cwriter
 
Das verstehe wiederum ich nicht ganz:confused:

Ich benutze Dev-C++, Version 5 Beta.

Ich bin mir allerdings nicht ganz sicher, ob das an der Beta-Version liegt; diese akzeptiert manchmal das "FILE*f;" nicht, es steht dann: "Syntax Error before "f" token".

Kann dieses Problem daran liegen?

Vielen Dank!

cwriter
Also das liegt wohl eher daran dass Du vergessen hast die <stdio.h> einzubinden...
 
Nein, das ist der Quelltext:


Code:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <unistd.h>



int main(int argc, char *argv[])
{  
  
  char Text;
  int temp;
  int end;
  
  end=1;
  

  while(end=1)
{
  temp=getch("%X");
  fflush(stdin);
  
  
  system("cls");

  printf("%c",temp);
  
  FILE*fp;
  fp=fopen("Text.txt","w+");
  fprintf(fp,"%c",temp);
  
  
  FILE*f;

  switch(temp)  
{
  case 61:
  
  f=fopen("Text.txt","w+");
  fprintf(f,"s");
  fclose(f);
  
  
  continue;
  
 }
 }



Soweit ich sehe, steht oben "#include <stdio.h>"

Es muss ein anderes Problem geben...

Gruss

cwriter
 
Zuletzt bearbeitet:
Ja, das Leerzeichen fehlt (wahrscheinlich). Vor oder nach dem Asterisk (*) sollte schon ein Leerzeichen kommen. Wo genau ist
Ansichtssache.

[EDIT]
Im Übrigen: Willst Du wirklich while(end=1) scheiben? while(end==1) passt sicher besser.
 
Zuletzt bearbeitet:
Funktioniert immer noch nicht...:confused:

Muss denn der ganze Pfad angegeben werden?
fopen("C:\\Users\\Beispiel\\Desktop\\text.txt", "w+");

Gruss

cwriter
 
Ja und nein.
Man kann den Pfad auch relativ angeben, dann bezieht er sich aber immer auf das aktuelle Arbeitsverzeichnis. Den kompletten Pfad anzugeben sollte aber immer funktionieren - sofern der auch existiert und der Aufrufende (des Programmes) die nötigen Zugriffsrechte hat.
Dennoch, die von Dir beschriebene Fehlermeldung hat damit nichts zu tun.
 
Vielen Dank für die Hilfe!

Ich habe noch ein Problem:(:

Code:
FILE *fp;
fp=fopen("C:\\Text.txt","w+");
fseek(fp,0,SEKK_END);
fprintf(fp,"%c",temp);
fclose(fp);

(Es ist ein Ausschnitt aus dem Code oben, ein wenig verbessert und mit der Korrektur von Enumerator)

Ich will, dass die Variable temp die einzelnen Buchstaben in die Datei schreibt, aber irgendwie ist immer nur der zuletzt getippte Buchstabe in der Datei...

Kann mir jemand helfen?

Vielen Dank im Voraus

cwriter
 
Hi,

also erstmal heißt das Define SEEK_END nicht SEKK_END. Und zweitens setzt der fseek() deinen Cursor ja direkt ans Ende der Datei. Außerdem ist es echt hilfreich, nicht nur den Ausschnitt zu sehen, sondern den kompletten Code.
 
Zurück