Scanf Problem

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
pkle
Beiträge: 1
Registriert: Mi Jun 08, 2022 11:49 am

Scanf Problem

Beitrag von pkle » Mi Jun 08, 2022 11:50 am

Hallo,
wenn ich mit der scan Funktion mehrere daten scanne und sie dann kompakt aneinander reihen möchte, was muss ich dafür tun?
ich beginne gerade c zu lernen und komme da nicht weiter.
ich möchte 3 verschieden scans zu einem "Code" aus worten und Buchstaben zusammenfassen und dazwischen ein Zeichen setzen welches immer automatisch dort ist. die ersten beiden scans sollen sich vor dem Zeichen befinden und der letzte scan danach
bsp.
scan a ist AA
scan b ist 10
scan c ist 24.
zwischen scan b und scan c soll immer ein & stehen
so soll mein Produkt aussehen: AA10&24
Kann mir jemand vl einen Tipp geben wie ich das machen könnte?
Danke
pkle

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Scanf Problem

Beitrag von Xin » Mi Jun 08, 2022 1:24 pm

pkle hat geschrieben:
Mi Jun 08, 2022 11:50 am
ich beginne gerade c zu lernen und komme da nicht weiter.
Warum halten so viele es für eine gute Idee, Anfängern scanf auf's Auge zu drücken?
Entsprechend stelle ich das Lehrmaterial in Frage, was Dich nicht dazu bewegen muss, Dein Lehrmaterial aufzugeben, aber durchaus mit einem kritischen Blick zu betrachten, dass es womöglich nicht der Weisheit letzter Schluss sein könnte, sondern eher "übergangsweise" verwendet wird.
pkle hat geschrieben:
Mi Jun 08, 2022 11:50 am
so soll mein Produkt aussehen: AA10&24
Kann mir jemand vl einen Tipp geben wie ich das machen könnte?
Ich kann Dir Deine Frage nicht beantworten.

Zur Orientierung: Ich habe 1994 C gelernt, Informatik studiert, habe als C++-Entwickler in einem Forschungsinstitut gearbeitet, besuche C++-Konferenzen, saß mal mit Bjarne Stroustrup beim Essen zusammen, verdiene meinen Lebensunterhalt mit C und C++. Ich bin also nicht nur Hobbyentwickler in dem Bereich.

Warum kann ich die Frage nicht beantworten? Weil scanf zu benutzen quasi prinzipiell eine schlechte Idee ist. Das hat wunderbare Chancen schief zu gehen. Da ich keine Software will, die gute Chancen hat nicht zu funktionieren, benutze ich scanf praktisch nie.
Weswegen ich auch Anfängern scanf nicht vor die Nase setze und mit ein wenig fortgeschritteneren einen Parser baue.

Eventuell reichen zu Beginn auch Parameter?


Im Versuch die Frage zu beantworten:
Wenn vorne immer genau zwei Buchstaben stehen, würde ich "%c%c%c%c&%c%c" ausprobieren. Zeichen, Zeichen, Zeichen, Zeichen, & Zeichen, Zeichen.
Oder "%c%c%d&%d" - zwei Zeichen, gefolgt von einer Zahl, gefolgt von & und dann noch eine Zahl.
Ob das funktioniert? Keine Ahnung. :-)

Steht in den Eingabedaten was anderes, passiert halt was anderes. Darum würde ich das nicht schreiben, sondern einen Parser, der Zeichen für Zeichen einliest und zuordnet, also eben auch sagt "Das Zeichen habe ich hier nicht erwartet und darum breche ich hier ab, bevor ich Dir irgendeinen Mist ausrechne und Du glaubst, das Ergebnis würde zu Deinen Daten passen."

Und weil ich daher Parser schreibe, weiß ich nicht, wie scanf() hier im Detail funktioniert. :D

Ansonsten: scanf bei Fehlerquellen lesen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten