c warten Sie, bis stdin Lesen?
in meine Bewerbung, ich versuche zu erreichen, so etwas wie dieses:
habe ich:
- Daten 0, Daten 1, Daten 2, Daten ... n.
- einige Parameter zu übergeben,
flow:
- beginnt das Programm mit einigen Parametern und Daten schreiben 0 in stdin
- das Programm übernimmt die Berechnung nach den übergebenen Daten, "Daten 0" und Parameter
- "warten" für stdin und (klar alte stdin,Puffer und Variablen?)
- wiederholen Sie 1 ~2, wenn ich die Daten 1, Daten 2... und so weiter
- erreicht, wenn die Daten n, zu beenden(oder wenn ich als input ein abort code stdin sagen, das Programm zu beenden).
vielleicht so etwas?(pseudo-code):
int main(int argc, char *argv[])
{
get parameters();
int fslen = data size
char *c = (char *)malloc(fslen);
fgets(c, fslen, stdin);
while((c != null) || (c != Terminate code?))
{
do calculations with int c;
clear c;
}
return 0;
}
oder gibt es einen besseren Ansatz?
oder ist es nur eine schlechte Gewohnheit, Dinge zu tun auf diese Weise?
wenn ja, erläutern Sie bitte
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es wirklich nicht einen besseren Weg, mindestens so weit ich bin mir bewusst, zu Lesen und zu Parsen-line-Eingang, als zu Lesen und zu analysieren und line-Eingang.
Standardmäßig stdin sollte blockiert werden, so dass Ihre 'warten' Kriterium sollte gesorgt werden automagisch.
Sie müssen allerdings zwei Schlaufen, wenn Sie gehen, um das Lesen von Zeilen und dann Parsen der Zeilen für die codes:
Beachten Sie, dass fgets() können Sie "scheitern" hier für ganz unschuldig Gründen, und Sie brauchen, um sich vertraut mit feof() und ferror (), um sicherzustellen, dass Sie die Schnittstelle korrekt; ich bin mir nicht sicher, ob meine im obigen code ist konsistent mit dem, was Sie wollen/müssen Sie den code zu tun.