it-swarm.com.de

Verwendung der Umleitung in C zur Dateieingabe

Ich muss die Datei vom Terminal abrufen. Ich weiß, dass der Befehl folgendermaßen aussehen wird:

./a.out < fileName.txt

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

13
Dexter

Bei Verwendung der Umleitung wird der Inhalt der Eingabedatei an stdin gesendet. Sie müssen also aus stdin in Ihrem Code lesen. So etwas wie (Fehlerprüfung zur besseren Übersicht weggelassen)

#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;
}
12
Nigel Harper

1.) Sie schließen stdin und weisen ihm dann einen anderen Dateihandler zu 2.) Ersetzen Sie stdin durch einen anderen Dateihandler Mit der dup2-Funktion können Sie dies erreichen

2
Pratik

Sie verwenden nicht fgets, Sie verwenden gets.

Die Umleitung bedeutet nur, dass Ihre Terminal-Eingabe der Dateiinhalt ist. Ihr Programm weiß jedoch nicht, woher es kommt, weil es vom Betriebssystem ausgeführt wird.

0
SJuan76