Analog meinem ersten Beitrag heute möchte ich jetzt einen String per Terminal einlesen. char c[100]; print("Starting mytest\n"); gets(c); gets erwartet ja am Ende ein NEWLINE. Wie realisiere ich das im Terminal? Eingabe von Enter oder \n im Terminalfenster bewirkte kein Weiterlaufen des Programms.
* Indem du dein Terminalprogramm so umkonfigurierst, dass es das Zeichen wegschickt (entweder CR oder LF), welches deine spezielle Implementierung von gets() sehen möchte * Indem du dir selbst eienen Ersatz für gets() schreibst und dadurch die Kontrolle darüber hast, mit welchem Zeichen eine Eingabe als abgeschlossen gilt. PS: Wer gets() benutzt, sollte sofort seine Lizenz zum Programmieren verlieren. gets() ist eine *Un*funktion die am besten nie in C aufgenommen worden wäre. Immer fgets() benutzen. Was ist falsch an gets()? Schau dir die Argumentliste an und dann beantworte die Frage: Wie kann gets() verhindern, dass ein Benutzer durch seine Eingabe den Buffer den gets() bekommt überlaufen lässt. Die Antwort: gar nicht Und deshalb gehören gets() Programmierer sofort mit dem nassen Fetzen verjagt.
Ich lach mich weg !!!! Probiers doch mal damit:
1 | Get_Miracle
|
Siehe Anhang ! Sorry, konnte ich mir nicht verkneifen. Seit wann gibt es denn hier Werbung ? LG EC
Danke für den Hinweis auf CR. Dass gets in einem guten Programm nichts zu suchen hat ist mir klar. Es geht ja hier nur um einen kleinen Test.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.