Zu den Aufzeichnungen der tutorials.de-Live-Workshops
Like Tree1Danke
  • 1 Beitrag von Enumerator
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
426
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    cwriter cwriter ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    205
    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
    Geändert von cwriter (10.03.10 um 19:25 Uhr) Grund: Tippfehler
     

  2. #2
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.122
    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.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  3. #3
    cwriter cwriter ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    205
    Das verstehe wiederum ich nicht ganz

    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
     

  4. #4
    Avatar von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    525
    Blog-Einträge
    2
    Zitat Zitat von cwriter Beitrag anzeigen
    Das verstehe wiederum ich nicht ganz

    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...
     
    Zitat Zitat von Aba Assa
    "Zitate sind so etwas wie Outsourcing des Geistes."
    just-lyrics.org :: my-lyrics.org

  5. #5
    cwriter cwriter ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    205
    Nein, das ist der Quelltext:


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    
    #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
    Geändert von cwriter (11.03.10 um 18:44 Uhr)
     

  6. #6
    Avatar von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    525
    Blog-Einträge
    2
    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.
    Geändert von Enumerator (11.03.10 um 19:01 Uhr)
    cwriter bedankt sich. 
    Zitat Zitat von Aba Assa
    "Zitate sind so etwas wie Outsourcing des Geistes."
    just-lyrics.org :: my-lyrics.org

  7. #7
    cwriter cwriter ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    205
    Funktioniert immer noch nicht...

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

    Gruss

    cwriter
     

  8. #8
    Avatar von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    525
    Blog-Einträge
    2
    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.
     
    Zitat Zitat von Aba Assa
    "Zitate sind so etwas wie Outsourcing des Geistes."
    just-lyrics.org :: my-lyrics.org

  9. #9
    cwriter cwriter ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    205
    Vielen Dank für die Hilfe!

    Ich habe noch ein Problem:

    Code :
    1
    2
    3
    4
    5
    
    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
     

  10. #10
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.122
    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.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  11. #11
    cwriter cwriter ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    205
    Sorry, war wohl etwas müde.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    
    #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;
      
      printf("Hallo!\n");
     
      while(end==1)
    {
      temp=getch("%X");
      fflush(stdin);
      
      
      system("cls");
      printf("Hallo!\n");
      printf("%c",temp);
      
      FILE *fp;
      fp=fopen("Text.txt","w+");
      fseek(fp,0,SEEK_END);
      fprintf(fp,"%c",temp);
      fclose(fp);
      
      FILE *fa;
      
      switch(temp)  
    {
      
      case 61:
      
      fa=fopen("Text2.txt","w+");
      fprintf(fa,"s");
      fclose(fa);
      
      
      continue;
      
     
    }
      
    }  
      system("PAUSE");  
      return 0;
    }

    Das ist der Code.

    Aber die Datei beinhaltet immer nur den zuletzt getippten Buchstaben...

    Und nochmals Entschuldigung.


    cwriter
    Geändert von cwriter (12.03.10 um 17:43 Uhr)
     

  12. #12
    Cromon Cromon ist offline Mitglied Brillant
    Registriert seit
    Apr 2008
    Beiträge
    819
    Lies dir mal die Referenz durch bezüglich der Funktionen, die du verwendet hast:
    http://www.cplusplus.com/reference/c...stdio/fprintf/
    http://msdn.microsoft.com/en-us/libr...8VS.80%29.aspx (_getch ist ISO C++ äquivalent zu getch in C)
     

  13. #13
    cwriter cwriter ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    205
    Äh, Ich verstehe nicht ganz...

    Die Funktionen sind gemäss Dev-C++ in Ordnung, das Programm funktioniert auch zum Teil...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    
    #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;
      
      printf("Hallo!\n");
     
      while(end==1)
    {
      temp=getch("%X");
      fflush(stdin);
      
      
      system("cls");
      printf("Hallo!\n");
      printf("%c",temp);
      
      FILE *fp;
      fp=fopen("Text.txt","w+");
      fseek(fp,0,SEEK_END);
      fprintf(fp,"%c",temp);
      fclose(fp);
      
      [B][I][U]FILE *fa;
      
      switch(temp)  
    {
      
      case 61:
      
      fa=fopen("Text2.txt","w+");
      fprintf(fa,"s");
      fclose(fa);[/U][/I][/B]
      
      
      continue;
      
     
    }
      
    }  
      system("PAUSE");  
      return 0;
    }

    Die markierte Stelle scheint mir das Problem zu sein, aber ich finde keinen Fehler...
    Seht ihr etwas?

    Gruss
    cwriter
     
    Intel inside - Idiot outside :-)

    Ich schreibe in C und bin Anfänger.
    ______________________________

    Falls ich eines Tages einen guten Beitrag schreiben werde, bitte bewerten und/oder Danke sagen.
    Danke

Ähnliche Themen

  1. VB 9: Pfad in Richtextbox Speichern und Öffnen
    Von Cirric im Forum .NET Windows Forms
    Antworten: 5
    Letzter Beitrag: 16.09.08, 22:24
  2. In Listbox markierten Pfad öffnen
    Von BLADEooz im Forum Visual Basic 6.0
    Antworten: 7
    Letzter Beitrag: 29.09.05, 13:24
  3. .exe Datei mit unbekannten Pfad laden
    Von Christoph1972 im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 09.05.05, 12:36
  4. Fenster nicht öffnen bei bestimmtem Pfad
    Von itnobby im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 24.10.04, 01:38
  5. Schalter nach Pfad ausgerichtet | in PopUp öffnen
    Von shari im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 06.02.04, 13:26

Stichworte