Hilfe eine Frage bzg scanf()
-
Okay das ist schon echt heavy mit diesem Wolf. Könntet ihr mir vieleicht gute Literatur empfehlen? Ach noch wieso printf("%*d\n",i,i);
c
c/*weite.c*/ #include <stdio.h> int main(void) { int i=-10; printf("%5d \n",i ); printf("%*d \n",i,i ); return 0; }
Es tut mir leid das ich mit solchen fragen belästigen muss. Aber es wird halt nichts erklärt. Da ich schon es verstehen würde wenn es halt irgendwo erklärt wäre. Oder solle ich etwa aus intuition lernen wenn es nach dem Herrn Wolf geht.
-
@Computer_Nerd_C sagte in Hilfe eine Frage bzg scanf():
// Code
Diese "Beispiele" sind einfach nur grober Unfug. Lass sie bitte. Nicht. Ansehen.
Willst Du eigentlich C lernen oder C++?
Zusatzfrage wenn Die Antwort C ist: Willst Du irgendwann auch C++ lernen?
-
Über die Bedeutung von
*
inprintf
auch die Hilfe zur Selbsthilfe:
https://en.cppreference.com/w/c/io/fprintf
http://www.cplusplus.com/reference/cstdio/printf/
Das ist aber etwas ganz ungewöhnliches, das man vielleicht einmal im Leben braucht. Und ganz bestimmt nicht mit -10 als Argument.Bezüglich Büchern: "The C Programming Language" ist das Standardwerk.
-
@Computer_Nerd_C Tja, das ist ein witziger Scanf- Formatstring, das %c liest den char ein, soweit klar. Das %*c dient dazu, das beim Drücken der Return- Taste unweigerlich im Tatstaturpuffer landende newline zu lesen und zu verwerfen. Aschenputtelmäßig, den ersten ins Töpfchen, den nächsten ins Kröpfchen.
Kannsteda nachlesen: http://www.cplusplus.com/reference/cstdio/scanf/
@edit Aber die Anderen haben schon recht, besonders eingabesicher ist das nicht. Kann man zu leicht außer Tritt bringen.
-
@Computer_Nerd_C sagte in Hilfe eine Frage bzg scanf():
Ach noch wieso printf("%*d\n",i,i);
Schließe nicht vom Verhalten von ´printf´ auf das Verhalten auf ´scanf´ und umgekehrt.
Die mögen gleich aussehen, die Bedeutung der Formatspecifier ist anders.
-
@DirkB Ja klar bloß was ist die Aufgabe davon also von * und wieso zwei mal i jetzt in printf. Also dieses Buch ist wircklich für die Tonne.
-
@Computer_Nerd_C sagte in Hilfe eine Frage bzg scanf():
Also dieses Buch ist wircklich für die Tonne.
@Swordfish sagte in Hilfe eine Frage bzg scanf():
Willst Du eigentlich C lernen oder C++?
Zusatzfrage wenn Die Antwort C ist: Willst Du irgendwann auch C++ lernen?
-
@Swordfish Ja erst C danach C++. Mich hat immer die Systemprogramierung interssiert.Habe jahre lang in Assembler Programiert bis ich mich seit 3 Wochen entschieden habe c und danach c++ zu lernen. Für mich ist der Assembler klarer und verständlicher also wenn man sich solange auf der Abstrakten umgebung angepasst hat.Tue ich mich stand jetzt noch etwas schwer. Da eine Hochsprache 2.Abstraktionsebene also c .Doch was ganz anderes ist im Vergleich dazu.
-
@Computer_Nerd_C sagte in Hilfe eine Frage bzg scanf():
ja klar bloß was ist die Aufgabe davon also von *
http://www.cplusplus.com/reference/cstdio/printf/ sagt zu *:
The width is not specified in the format string, but as an additional integer value argument preceding the argument that has to be formatted.und wieso zwei mal i jetzt in printf.
Einmal für die Mindesbreite und einmal der Wert der ausgegeben werden soll.
Warum i für die Breite? Das weiß wohl nur der Autor (oder auch nicht).
-
@DirkB Danke...!
-
@Computer_Nerd_C sagte in Hilfe eine Frage bzg scanf():
erst C danach C++.
Dann lerne gleich C++.
C versaut dich nur (wenn es der Assembler nicht schon getan hat). Du bist dann im prozeduralen Denken verfangen und nutzt nicht die vielen Möglichleiten von C++ aus.
-
@Computer_Nerd_C sagte in Hilfe eine Frage bzg scanf():
Ja erst C danach C++.
Das würde ich bleiben lassen. Es wird Dir nur miesen Stil beigebracht haben wenn Du dann mit C++ anfängst. Du wirst dann in C++ versuchen die Dir aus C bekannten Idiome zu verwenden. Würd' ich echt sein lassen.
-
Okay danke für die Tipps... Bloß in der Systemprogramierung braucht man soweit ich weiß c also der Linux Kernel. Denn mein Ziel war es mich bei React OS oder etwas für die Linux Foundation zu programmiern . Dem monopolen und komerzielen Dreck Microsoft mit Windoff in anführungszeichen eins auszuwischen.Die armen User für mich ist das System einfach nur eine riesige Datenkranke oder besser gesagt ein "Staatstrojaner".
-
@Computer_Nerd_C sagte in Hilfe eine Frage bzg scanf():
Für mich ist der Assembler klarer und verständlicher.
Es gibt kein "der" Assembler. Ich habe mich lange mit Tasm&Co herumgeschlagen, weil vernünftige Compiler jenseits i86 nicht preiswert aufzutreiben waren. Heute kriegste fast jede Plattform auf GCC- Basis in den Griff, das bedeutet C++ inklusive.
Tu Dir selbst einen Gefallen, nimm C als Teaser und schau, was du mit C++ anstellen kannst.
-
@Computer_Nerd_C sagte in Hilfe eine Frage bzg scanf():
Bloß in der Systemprogramierung braucht man soweit ich weiß c also der Linux Kernel. Denn mein Ziel war es mich bei React OS oder etwas für die Linux Foundation zu programmiern zu bewerben
Sorry, aber bis Du irgendwann vielleicht soweit kommst ... da kannst auch mit C++ anfangen und das vernünftig lernen. Wenn Du halbwegs fit bist geht C dann nebenbei.
-
@Swordfish Okay da hast dur recht!
-
Da drüben:
(Buch-) Empfehlung zum Einstieg in die Programmierung mit C++ gesucht
vielleicht mal reinschauen.
-
Eins muss ich sagen ihr seit echt ne nette Community. Wie gesagt danke für die Tipps und die Erklärungen.
-
Also ja ich werde dann mal erst mal C++ machen und nebenher C.
Und vorall die Bücher vom Herrn Wofl erst mal verbrennen.
-