Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
argv +argc

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
peter+.k
Gast





BeitragVerfasst am: 21. Jan 2002 17:11   Titel: argv +argc

Ich bin gerade dabei ein kleines Programm zu schreiben bei den ich 2 argumente mit geben will.
Die wären erstens eine Quelldatei und eine Zieldatei.

Nun wenn der Benutzer 2 Argumente eingibt soll es den inhalt der Quelldatei in die Zieldatei schreiben, wenn er aber nur ein Argument eingegeben hat soll es einfach den Inhalt der Quell datei auf dem Bildschirm ausgeben.

Bitte helft mit. Bin schon mehrere Tage dran.

Das hab ich bis jetzt:
#include <stdio.h>

int main(int argc, char* argv[]) {

FILE* quelldatei=NULL;
FILE* zieldatei=NULL;

int c;
if(argc>0) {
zieldatei=fopen(argv,"w"); //zweiter param
printf("Quelldatei: %s wurde geöffnet
",argv);


if((quelldatei=fopen(argv,"r")) == NULL){
printf("Konnte %s nicht oeffnen
",argv);
getchar();
exit(-1);
} // if

if(argc>1) {
//wenn mindestens 2 Argumente angegeben wurden
zieldatei=fopen(argv,"w"); //zweiter param
printf("Zieldatei: %s wurde geöffnet
",argv);
}
printf ("%s",argv);
fseek(quelldatei, 0L, SEEK_END);
long filepos = ftell(quelldatei);
while (filepos >= 0) {
fseek(quelldatei, filepos, SEEK_SET);
putc(getc(quelldatei), zieldatei);
filepos--;
} // while

// } // if(argc > 1)

} // if (argc > 1)

else { // if argc <= 0, keine argumente angegeben
printf("Keine Argumente angegeben

");
printf ("%s",argv);
getchar();
} // else

} // main
 

Jochen
Gast





BeitragVerfasst am: 22. Jan 2002 9:38   Titel: Re: argv +argc

Dein erstes Problem ist, dass "argc" immer grösser 0 sein muss, da in der Parameterliste auch der Name des Programms (auf Index 0 im Array) steht.

Probier mal folgendes Programm aus, da siehst Du es:
code:

/* Programm: arg */
#include <stdio.h>

int main (int argc, char *argv[]) {

int i;

printf "Anzahl Argumente: %d\n",argc) ;

for (i=0; i < argc ; i++ ) {
printf ("Argument %d: %s\n", i, argv[i]);
}
exit (0);
}



Als arg.c abgespeichert und mittels "make arg" übersetzt, kannst Du es beispielsweise mit "arg hallo du da" aufrufen. Ergebnis ist dann

Anzahl Argumente: 4
Argument 0: arg
Argument 1: hallo
Argument 2: du
Argument 3: da

OK soweit? Schau Dir auch mal an, wie auf die Argumente zugegriffen wird, und überarbeite Dein Programm dann noch einmal.

Jochen
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy