Usereingabe per Datei

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
gora
Beiträge: 58
Registriert: 30.04.2004 21:27:43

Usereingabe per Datei

Beitrag von gora » 24.10.2007 09:41:37

Wenn ich per fgets eine Usereingabe einlese, kann ich diese auch per Datei übergeben? Also nicht per argv[]!

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 24.10.2007 13:11:14

hi,

wenn du fgets(eingabe, sizeof(eingabe), stdin) meinst, geht's so:

Code: Alles auswählen

cat user_eingabe_datei | mein_programm
dann verbindet die Shell stdin von deinem Programm mit der Datei.
Beware of programmers who carry screwdrivers.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 24.10.2007 13:29:46

Mit "mein_program < meine_datei" kannst du deine Datei auch direkt über "stdin" einlesen, ohne eine Pipe benutzen zu müssen:

Code: Alles auswählen

gms@gms2 ~ $ vi x.c
gms@gms2 ~ $ cat x.c
#include <stdio.h>

int main() {
  char buf[1024];
  while (fgets(buf,sizeof(buf),stdin)) {
    fputs(buf,stdout);
  }
}
gms@gms2 ~ $ gcc -o x x.c
gms@gms2 ~ $ echo bla | ./x
bla
gms@gms2 ~ $ echo bla >x.txt
gms@gms2 ~ $ ./x <x.txt
bla
gms@gms2 ~ 
Gruß
gms

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 24.10.2007 13:54:05

ARRGH! Useless use of cat :evil:

und das mir, der immer ein Herz für Maschinen hat :oops:
Beware of programmers who carry screwdrivers.

Antworten