Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Ausführen von C-Programm funktioniert nicht

Nobody666 / 16 Antworten / Flachansicht Nickles

Hallo,


habe hier einen kleinen Ausschnitt von einem C-Programm. Will als Parameter eine Datei übergeben in Form -dxxx  xxx steht hierbei für den Dateinamen, sollte aber so sein, dass geprüft wird ob ein - steht, danach ob ein d steht und ich dann den Dateinamen habe, den ich später im Programm einlesen muß. Compilieren zeigt keinen Fehler, beim Ausführen mit den Parametern -dabcd zum Beispiel, bricht er mit der Fehlermeldung exe hat Fehler verursacht und wird abgebrochen ab. Wer kann helfen????????


 int main (int argc, char *argv[] ) {
   
   //Parameteruebergabe bei Programmaufruf
 for (i=1; i<argc;i++)
  {
  if ((argv[i] [0]) == '-')
   {
   switch ((argv[i]) [1])
    {
        case 'd': 
    if(sscanf(argv[i]+2,"%c",&Byte_name) !=1)
     FileSpecified=0;    
    else           
     FileSpecified=1;
     for (int j=2;int halt=1;j++)
      {
      sscanf(argv[i]+j,"%c",&Byte_name);
      Byte_name1=Byte_name;
      if(Byte_name1 !='-')
       {
        Datei_name[j-2]=Byte_name1;
       }
       else
       {
        halt=1;
        Datei_name[j-3]='\0';
        break;
       }
      }
      strcpy(File_name,Datei_name);
      strcat(File_name,".lb0");;
      break;
          
      }
     }
    }


 


will danach die Datei einlesen mit:


 if ( (werte = fopen(File_name,"rb"))==NULL)
 {
  printf("Fehler beim Lesen der Datei %s",File_name);
  exit(0);
 }
 else
  { 
  ...........                                      kann aber leider noch nicht überpruefen, ob dass dann auch funktioniert, da ich ja nicht soweit komme.


 


mfg


Nobody

bei Antwort benachrichtigen
Nobody666 mr.escape „Wie jetzt? Bei proggy.exe -d1409ab soll anzahl 1 sein und bei proggy.exe -d123ca...“
Optionen

Servus,
nein, so kompliziert brauche ich es gar nicht. Es wird immer nur ein Dateiname gleichzeitig gespeichert.Der Variablenname Anzahl ist unglücklich gewählt. Im Programmverlauf muß ich nur öfters an verschiedenen Stellen unterscheiden, welche Datei gelesen worden ist. Habe öfters stehen: if (Anzahl==1) {...} oder dann if (Anzahl==2) {...}. Wie mache ich das am geschicktesten?

bei Antwort benachrichtigen