Frage von Zuhaelterbanane, 31

Kann mir jemand bei diesem Code/Aufgabe helfen (Programmieren mit C)?

Aufgabe: 1) Erstellen Sie eine Konsolenanwendung, die zwei Parameter über die Kommandozeile entgegen nimmt. Der erste Parameter enthält den Namen einer Datei. Der zweite Parameter ein Zeichen. Die Anwendung soll zurückgeben, wie oft die Datei das Zeichen enthält.

Erweiterung: Falls keine Datei des Namens existiert, soll das Programm eine entsprechende Meldung zurückgeben.

Hier fehlt noch der Code für : Die Anwendung soll zurückgeben, wie oft die Datei das Zeichen enthält.

habe schon überall durch Gegoogelt und komme nicht weiter.

Das ist mein Code derzeitiger Code:

include

include

int main ()

{

FILE *fp; int i, temp;

fp = fopen ("Testdokument.txt", "r");

if(fp == NULL)

{

printf("Datei konnte NICHT geoeffnet werden.\n");

} else { printf("Datei konnte geoeffnet werden.\n");

fclose(fp);

}

fp = fopen ("Testdokument.txt", "r");

if(fp == NULL) {

printf("Datei konnte nicht geoeffnet werden.\n");

}else {

while((temp = fgetc(fp))!=EOF) {
    printf("%c ", temp);
}

fclose(fp);

}

printf("\n");



return 0;

}

Antwort
von ralphdieter, 10

zwei Parameter über die Kommandozeile

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

Bei Dir sollte argc==3 sein, sonst hat der Benutzer zu wenig oder zu viele Parameter angegeben (z.B. wenn ein Dateiname mit Leerzeichen nicht in Anführungszeichen gesetzt wurde).

  • argv[0] ist der Programmname (hilfreich in Fehlermeldungen).
  • argv[1] soll der Dateiname sein (statt "Testdokument.txt").
  • argv[2] soll genau ein Zeichen lang sein ⇒ Teste auf strlen(argv[2])==1.

Zwecks Lesbarkeit setze:

int const zeichen = argv[2][0];

So zählst Du die Vorkommen von <zeichen>:

int count = 0;
while ( (temp = fgetc(fp))!=EOF )
if ( temp==zeichen )
++count;

Keine passende Antwort gefunden?

Fragen Sie die Community