Meine Frage ist, wie man eine Funktion schreibt, mit der ich ein Programm von der Konsole mit folgenden Parametern ausführen kann: program.exe -i input.txt -o output.txt -t 1/2 3/Laufendes Programm von der Konsole mit Parametern
#include <stdio.h>
#include <stdlib.h>
char substitute(char letter, char* cipher)
{
int i;
int cipher_length = strlen(cipher);
char substitution = letter;
for(i = 0; i < cipher_length; ++i)
{
if(cipher[i] == substitution)
{
substitution = cipher[(i%2) ? (i-1) : (i+1)];
break;
}
}
return substitution;
}
int main()
{
char c;
int t;
FILE *plik = fopen("input.txt", "rt");
FILE *encoded=fopen("output.txt","wt");
char* cipher1 = "GADERYPOLUKIgaderypoluki";
char* cipher2 = "POLITYKARENUpolitykarenu";
char* cipher3 = "KACEMINUTOWYkaceminutowy";
printf("Choose the cipher\n");
printf("[1]GA-DE-RY-PO-LU-KI\n");
printf("[2]PO-LI-TY-KA-RE-NU\n");
printf("[3]KA-CE-MI-NU-TO-WY\n");
scanf("%d",&t);
while(c != EOF)
{
c = getc(plik);
switch(t)
{
case 1:
putc(putchar(substitute(c, cipher1)),encoded);
break;
case 2: putc(putchar(substitute(c, cipher2)),encoded);
break;
case 3: putc(putchar(substitute(c, cipher3)),encoded);
break;
}
}
fclose(plik);
fclose(encoded);
}
ich war etw wie diese gegeben, aber ich weiß nicht, wie es zu benutzen:
int function(int argc, char*argcv[])
{
int i;
char *string,*input,*output;
for(i=0; i<argc; i++)
{
}
return 0;
}
Beachten Sie, dass eine Option nach UNIX-Konvention zwei Formen haben kann, die Kurzform eines einzelnen Bindestrichs gefolgt von einem Zeichen, "-i", oder der langen Form eines doppelten Bindestrichs, gefolgt von einer sinnvollen Folge von Zeichen, "Eingabe". – Beta
Ich schlage vor, ['getopt()'] (http://man7.org/linux/man-pages/man3/opterr.3.html) von '' zu betrachten. Das macht es ziemlich einfach. –
e0k