2017-11-28 8 views
1

Ich muss eine Zuweisung machen wo ich ein C-Programm schreiben muss, wo es den Eingabedateinamen von der Konsole bekommt Befehlszeilenparameter.
Es sollte die Daten aus der Datei input.txt (die Eingabedatei enthält die Informationen für die BMP-Datei - Farbe usw.) in die generierte output.png-Datei verschieben. Die 20 20 Parameter stehen für Breite und Höhe für das Bild output.png.lese input.txt Datei und auch output.bmp Datei vom Terminal (C-Programmierung)

So ist die Konsole-Anfrage zum Beispiel (auf Linux getestet) wird wie folgt aussehen:

./main input.txt output.bmp 20 20 

Ich weiß, dass dieser Code eine input.txt Datei liest und legt sie auf dem Bildschirm.

FILE *input; 
int ch; 
input = fopen("input.txt","r"); 
ch = fgetc(input); 
while(!feof(input)) { 
    putchar(ch); 
    ch = fgetc(input); 
} 
fclose(input); 

Und dies würde (zum Beispiel) in die output.png Datei schreiben.

Aber dieser Code funktioniert nur, wenn ich den Namen direkt im Code hart Code, nicht mithilfe einer Befehlszeile Parameter.
Ich habe keine Ahnung, wie das zu implementieren ist und ich auch keine hilfreichen Informationen im Internet gefunden habe, vielleicht kann mir jemand helfen.

Grüße

+1

https://stackoverflow.com/questions/5431941/why-is-which-feof-file-always-wrong – Mat

+0

Sind Ihnen die Parameter zu main() bekannt? I.e. argc und argv. – Yunnosch

+0

@Yunnosch nein ich bin nicht .. brauche ich sie das gewünschte Ergebnis bekommen? –

Antwort

0

Der vollständige Prototyp für einen Standard-main() ist

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

Sie einen int mit der Anzahl der Argumente erhalten, argc und
eine Liste von "Strings" (so weit Sie existieren in C), argv.

können Sie zum Beispiel

#include "stdio.h" 
int main(int argc, char* argv[]) 
{ 

    printf("Number: %d\n", argc); 
    printf("0: %s\n", argv[0]); 
    if (1<argc) 
    { 
     printf("1: %s\n", argv[1]); 
    } 
} 

mit den Argumenten zu spielen beginnen verwenden.

Beachten Sie, dass dies absichtlich nichts anderes als ein grundlegendes Beispiel für die Verwendung von Befehlszeilenparametern implementiert. Dies entspricht einer akkumulierten StackOverflow-Richtlinie, die Hilfestellung bei Zuweisungen bietet, ohne dass diese gelöst werden müssen.