Dateiname aus Argument in String speichern



  • Hi

    für ein Programm welches eine .ppm Datei in eine .bmp Datei konvertiert muss der Dateiname aus dem Argument gespeichert werden. Die konvertierte .bmp Datei muss dabei bis auf die Endung gleich heißen wie die .ppm Datei - sprich xxx.ppm -> xxx.bmp. Das Speicher des Arguments funktioniert schon und einen Algorythmus der genau xxx via printf ausgibt funktioniert auch. Das Problem das ich dabei habe: Wie kann ich genau xxx als String abspeichern?

    mfg
    Imbaer



  • anstatt xxx mit printf auszugeben kannst du xxx mit sprintf in einem string speichern.



  • Hi

    Danke für die Hilfe :).

    unsigned int namestringlenght=argumenttop-argumentbottom;
    char namestring[namestringlenght];
    
    while(argumentbottom<argumenttop)
      {
        sprintf(namestring,"%c",argumentName[argumentbottom]);
        argumentbottom=argumentbottom+1;
      }
    printf("%s",namestring);
    

    Das ist die while schleife, die ich implementiert habe. Das Programm kompiliert ohne Probleme, allerdings wird wohl nur das letzte Zeichen gespeicher und beim printf ausgeben. Die Speichergröße des Strings müsste eigentlich ja so passen.

    Wenn ich allerdings

    unsigned int namestringlenght=argumenttop-argumentbottom;
      char namestring[namestringlenght];
    
      while(argumentbottom<argumenttop)
      {
          sprintf(namestring[argumentbottom],"%c",argumentName[argumentbottom]);
    	  argumentbottom=argumentbottom+1;
      }
      printf("%s",namestring);
    

    versuche kompiliert das Programm mit der Warnung "passing arg 1 makes pointer from integer without a cast". 😞



  • Wenn du nur jeweils ein Zeichen schreiben willst würde ich statt

    sprintf(namestring[argumentbottom],"%c",argumentName[argumentbottom]);
    

    einfach

    namestring[argumentbottom]=argumentName[argumentbottom];
    

    verwenden.


Anmelden zum Antworten