2013-10-19 11 views
9

Umleitung in C verwenden ich die Datei aus dem Terminal erhalten müssen, ich weiß, der Befehl aussehen wird: IchWie für Dateieingabe

./a.out < fileName.txt 

nicht sicher bin, wie fgets() zu verwenden, in meinem Programm, um die vom Terminal angeforderte Datei zu verwenden.

Antwort

9

Mit Umleitung den Inhalt der Eingabedatei stdin sendet, so dass Sie von stdin in Ihrem Code lesen müssen, so etwas wie (Fehler aus Gründen der Übersichtlichkeit weggelassen Prüfung)

#include <stdio.h> 

#define BUFFERSIZE 100 

int main (int argc, char *argv[]) 
{ 
    char buffer[BUFFERSIZE]; 
    fgets(buffer, BUFFERSIZE , stdin); 
    printf("Read: %s", buffer); 
    return 0; 
} 
0

Sie nicht fgets verwenden, verwenden Sie gets

Die Umleitung bedeutet nur, dass Ihr Terminal-Eingang wird der Dateiinhalt sein. Aber dein Programm weiß nicht woher es kommt, weil es vom Betriebssystem gemacht wird.

+2

"verwenden gets" ist nie die richtige Antwort. Es gibt einen Grund, warum die Funktion in C99 veraltet und in C11 entfernt wurde. –

2

1.) Sie schließen stdin Ordnen Sie dann einen anderen Dateihandler zu. 2.) ersetzen Sie stdin mit einem anderen Dateihandler mit dup2 Funktion können Sie es erreichen

Verwandte Themen