mikrocontroller.net

Forum: Compiler & IDEs String aus Terminal einlesen


Autor: M. I. (seventh_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
* 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.

Autor: ecslowhand (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich lach mich weg !!!!

Probiers doch mal damit:
Get_Miracle

Siehe Anhang !

Sorry, konnte ich mir nicht verkneifen. Seit wann gibt es denn hier 
Werbung ?

LG EC

Autor: M. I. (seventh_son)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.