Erkennen von Ctrl-D in C

Ich versuche zu erkennen, die Strg+D Benutzereingaben, die ich kenne, gibt EOF. Jetzt weiß ich den code auf eine Eingabe wartet, aus dem stdin-stream, aber gibt es eine Möglichkeit, dass das Programm fortgesetzt, bis die Strg+D - Befehl ist in stdin? Sollte das Programm weiterhin laufen Vergangenheit die if-Anweisung if Strg+D ist nicht eingegeben.

char buffer[];
if (fgets(buffer, 10, stdin) == NULL{
    //write to file
}
  • Der gepostet code nicht kompilieren.
  • Nein, das ist nicht möglich. Ein Programm läuft oder Stoppt und auf Eingaben wartet. Es kann nicht beide Dinge auf einmal. (Bevor jemand sagt, das ist möglich mit multithreading: ich nicht empfehlen Tauchen Sie ein in multithreading nur noch).
  • Das fühlt sich für mich wie eine Frage nach einer XY-problem
  • Dein buffer-array hat ein Problem - EOF ist kein char (Sie benötigen eine int für die).
InformationsquelleAutor Melissa Ding | 2016-03-06
Schreibe einen Kommentar