tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    cwriter cwriter ist offline Mitglied Bronze cwriter hat eine blütenweiße Weste
    Registriert seit
    Mar 2010
    Beiträge
    26
    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
    Benutzerbild von saftmeister
    saftmeister saftmeister ist offline Mitglied Wurstwasser saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen
    Registriert seit
    May 2006
    Ort
    Ebelsbach (Bayern)
    Beiträge
    1.437
    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
    --
    "Möge der Saft mit euch sein" - Yoghurt aus Spaceballs

    Tutorial: Programm-Flaschenhälse in PHP mit xdebug finden

  3. #3
    cwriter cwriter ist offline Mitglied Bronze cwriter hat eine blütenweiße Weste
    Registriert seit
    Mar 2010
    Beiträge
    26
    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
    Benutzerbild von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    523
    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."
    http://enumerator.meinbrutalo.de

  5. #5
    cwriter cwriter ist offline Mitglied Bronze cwriter hat eine blütenweiße Weste
    Registriert seit
    Mar 2010
    Beiträge
    26
    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
    Benutzerbild von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    523
    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)
    Zitat Zitat von Aba Assa
    "Zitate sind so etwas wie Outsourcing des Geistes."
    http://enumerator.meinbrutalo.de

  7. #7
    cwriter cwriter ist offline Mitglied Bronze cwriter hat eine blütenweiße Weste
    Registriert seit
    Mar 2010
    Beiträge
    26
    Funktioniert immer noch nicht...

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

    Gruss

    cwriter

  8. #8
    Benutzerbild von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein Enumerator kann auf vieles stolz sein
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    523
    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."
    http://enumerator.meinbrutalo.de

  9. #9
    cwriter cwriter ist offline Mitglied Bronze cwriter hat eine blütenweiße Weste
    Registriert seit
    Mar 2010
    Beiträge
    26
    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
    Benutzerbild von saftmeister
    saftmeister saftmeister ist offline Mitglied Wurstwasser saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen saftmeister genießt hohes Ansehen
    Registriert seit
    May 2006
    Ort
    Ebelsbach (Bayern)
    Beiträge
    1.437
    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
    --
    "Möge der Saft mit euch sein" - Yoghurt aus Spaceballs

    Tutorial: Programm-Flaschenhälse in PHP mit xdebug finden

  11. #11
    cwriter cwriter ist offline Mitglied Bronze cwriter hat eine blütenweiße Weste
    Registriert seit
    Mar 2010
    Beiträge
    26
    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 ⁂Programmierfreak⁂ Cromon hat eine strahlende Zukunft Cromon hat eine strahlende Zukunft Cromon hat eine strahlende Zukunft Cromon hat eine strahlende Zukunft Cromon hat eine strahlende Zukunft Cromon hat eine strahlende Zukunft Cromon hat eine strahlende Zukunft
    Registriert seit
    Apr 2008
    Beiträge
    757
    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 Bronze cwriter hat eine blütenweiße Weste
    Registriert seit
    Mar 2010
    Beiträge
    26
    Ä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

Lesezeichen

Lesezeichen