Hallo Ich nutze einen xc167 und uvision um ihn zu beschreiben. Ich suche nun eine gute elegante Lösung um mehrere Zahlen mit einmal einzulesen. Also sowas wie "3489". Die Eingabe sollte mit Return bestätigt werden. Einzelne Zeichen habe ich bisher als Zeichen mittels getchar eingelesen... Es wäre ja sicherlich mit scanf möglich?? Aber ist das auch ne gute Lösung? Danke für die Hilfe
Du kannst den String mit gets() einlesen - die wartet, bis ein Return kommt und anschließend den Puffer mit atoi in int umwandeln. sscanf zieht noch eine Menge Code aus der Bibliothek in dein Programm. Wenn du sie nicht anderweitig brauchst, nimm sie lieber nicht.
gets() ist keine gute Lösung. gets() hat keine Möglichkeit sich gegen Bufferoverflows zu wehren. Wenn schon, dann fgets() fgets() + atoi() ist eine Möglichkeit. Wenn du aber ein bischen Handarbeit machen willst: Es ist nicht weiter schwer einen String (solange er nur aus Ziffern-Zeichen besteht) in eine Zahl umzuwandeln. Eine Vorübung. Wenn du an die Zahl 12 rechts noch die Ziffer 3 anhängen möchtest, um daraus die Zahl 123 zu machen, wie kannst du vorgehen? Zb. so 12 12 * 10 -> 120 120 + 3 -> 123 Also: Alte Zahl mal 10, plus die nächste Ziffer. Wenn da jetzt noch eine 8 drann soll, aus 123 also 1238 werden soll: 123 123 * 10 -> 1230 1230 + 8 -> 1238 Reicht dir das als Hinweis oder brauchst du noch mehr?
Danke Euch.. @Karl heinz Buchegger Deine zwei gezeigten Beispiele sind schon klar. Man könnte somit jedes einzelne Zeichen einlesen und zu einer mehrstelligen Zahl zusammenbauen. Ich möchte 10 stellige Zahlen eingeben und die sollten hintereinander eingeben werden. ALso müsste ich mir eine Art Editor basteln. Die Einzelziffer wird eingelesen und sofort auf den Monitor dargestellt.... In der von dir gezeigten Weise würde ich die Zahl zusammenstellen... Das Enterzeichen würde das Ende einer Eingabe darstellen, so dass auch weniger als 10 Zeichen möglich sind. Würde das so gehen oder spinne ich gerade ? ;-) Danke
Das geht. Du mußt eben auf \r oder \n abprüfen, wenn du selbst wandeln willst. Außerdem können natürlich auch Zeichen kommen, die keine Ziffern sind - da mußt du dir überlegen, was du damit machen willst...
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.