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

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
switch und schleifen

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





BeitragVerfasst am: 24. Jan 2002 9:39   Titel: switch und schleifen

kann das jemand mit schleifen machen und nicht mit switch??

#include <stdio.h>

int main(int argc, char *argv[]) {
FILE* quelldatei;
FILE* zieldatei;
int c;

switch(argc) {
long filepos;
case 2:
printf("1 Argument angegeben
");

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

else {
printf("Datei %s wurde geoeffnet
",quelldatei);

} // else

fseek(quelldatei, 0L, SEEK_END);
filepos = ftell(quelldatei);
while (filepos >= 0) {
fseek(quelldatei, filepos, SEEK_SET);
putc(getc(quelldatei), stdout);
filepos -= 1;
} // while

break;

case 3:
printf("2 Argumente angegeben
");

quelldatei=fopen(argv,"r");
if(quelldatei==NULL) {
printf("Konnte Quelldatei %s nicht öffnen!
",argv);
} // if

if(quelldatei!=NULL) {
printf("Quelldatei: %s wurde geoeffnet
",argv);
} // if

zieldatei=fopen(argv,"w");
if(zieldatei==NULL) {
printf("Konnte Zieldatei %s nicht öffnen!
",argv);
} // if

if(zieldatei!=NULL) {
printf("Zieldatei: %s wurde geoeffnet
",argv);
} // if

fseek(quelldatei, 0L, SEEK_END);
filepos = ftell(quelldatei);
while (filepos >= 0) {
fseek(quelldatei, filepos, SEEK_SET);
putc(getc(quelldatei), zieldatei);
filepos -= 1;
} // while


printf("
Inhalt der Quelldatei wurde in die Zieldatei geschrieben
");
break;

default:
printf("Fehler!!! Kein Argument angegeben
");
printf("Weiter mit Enter-Taste
");

fclose(quelldatei);
fclose(zieldatei);
getchar();
break;
} // switch

}
 

sulu



Anmeldungsdatum: 29.10.2001
Beiträge: 64
Wohnort: Dornbirn

BeitragVerfasst am: 24. Jan 2002 14:11   Titel: Re: switch und schleifen

HI BAP !

Der Switch ist so verwendet sogar grundfalsch !

Vergleich mal mit folgendem Programm-Code
Das Programm sollte funktionieren sofern auch deine Logik mit fseek, putc,... passt.


#include <stdio.h>
#include <stdlib.h>




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


FILE* quelldatei;
FILE* zieldatei;
char quellfn[256];
char zielfn[256];
int c;
int i;
long filepos;

/* wir lassen genau ein Kommandozeilenargument zu */
switch (argc) {
case 1: {
printf("Nur programmname angegeben\n");
printf("usage: programm quelldatei zieldatei\n");
exit(1);
}
case 2: {
printf("Nur quelldatei = %s angegeben
",argv[1]);
printf("usage: programm quelldatei zieldatei\n");
exit(1);
}
case 3: {
/* Hier wird Filename der Quelldatei abgefuellt */
printf("argument 1 (filename-quelle) = %s
",argv[1]);
sprintf(quellfn,"%s",argv[1]);
/* Hier wird Filename der Zieldatei abgefuellt */
printf("argument 2 (filename-ziel ) = %s
",argv[2]);
sprintf(zielfn,"%s",argv[2]);
break;
}
default: {
if(argc > 4) {
printf("Zu viele argumente eigegeben (zulaessig : 2)\n");
exit(1);
}
}

}

/* Quelldatei oeffnen */
quelldatei=fopen(quellfn,"r");
if(quelldatei==NULL) {
printf("Konnte Quelldatei %s nicht oeffnen!\n",quellfn);
exit(1);
}


/* Zieldatei oeffnen */
zieldatei=fopen(zielfn,"w");
if(zieldatei==NULL) {
printf("Konnte Zieldatei %s nicht oeffnen!\n",zielfn);
exit(1);
}

/* Deine Kopierlogik (hab ich nicht getestet) */
fseek(quelldatei, 0L, SEEK_END);
filepos = ftell(quelldatei);
while (filepos >= 0) {
fseek(quelldatei, filepos, SEEK_SET);
putc(getc(quelldatei), zieldatei);
filepos -= 1;
}

printf(" Inhalt der Quelldatei wurde in die Zieldatei geschrieben\n");

printf("Weiter mit Enter-Taste ");

fclose(quelldatei);
fclose(zieldatei);
getchar();

}


..................

Viel Spass.

Gruss
Sulu
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

trinity



Anmeldungsdatum: 12.10.2001
Beiträge: 821

BeitragVerfasst am: 24. Jan 2002 14:15   Titel: Re: switch und schleifen

>kann das jemand mit schleifen machen und nicht mit switch??

ja das würde schon gehen. Macht allerdings keinen Sinn.

- man muss nicht hundert mal die gleiche Routine schreiben.

PS: lies mal Jochens Posting bezüglich speziellen Zeichen innerhalb des Boards. Deine Programm-Postings sind schier nicht zu lesen.
_________________
"Korrekt, Freundlich, Kostenfrei", wähle genau zwei. (Lutz Donnerhacke in dcsf)
 
Benutzer-Profile anzeigen Private Nachricht senden

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