Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Verstehe folgenden Quellcode in C++ nicht ganz

Hi Leute. Bin neu auf diesem Gebiet und bitte dacher, mit einem Laien was die Programmierung betrifft zu reden.


/* printf.CPP printf */

#include <stdio.h>

int main()
  {
  int    i1 = 1000;
  int    i2 = -1;
  float  f1 = 3.1416;
  char   ch = 'A';
  char   str[2] = "A";

  printf(" %d  \t %d  \t %f    \t %c \t %s\n"
                                            ,i1,i2,f1,ch,str);
  printf(" %3d \t %3d \t %3.1f \t %c \t %s\n"
                                            ,i1,i2,f1,ch,str);
  printf(" %03d\t %03d\t %03.1f\t %c \t %s\n"
                                            ,i1,i2,f1,ch,str);

  return 0;
  }


Verstehen tue ich die Ausgabe nicht ganz, die ja lautet :

1000    -1    3.141600      A    A
1000     -1   3.1     A     A
1000    -01   3.1     A     A   



Ok.Die erste ausgegebene Zeile ist klar.Mein Problem bei dem ganzen ist, dass ich nicht verstehe, welchen Einfluss und vor allem wann die eingeschobenen Zahlen "3" und "0" haben. Denn in Zeile 2 (Der Ausgabe) wirkt die 3 in der zweiten Variable als Vorschub, während sie in der dritten Ausgabe die Zahl 3.141600 in verkürzter Form ausgibt (3.1) Kann mir das wer erläutern? Ähnliches passiert ja dann in der dritten Ausgabezeile mit der "0"

« Letzte Änderung: 08.06.06, 07:18:44 von Rumak18 »

Antworten zu Verstehe folgenden Quellcode in C++ nicht ganz:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo,

die Angabe zwischen den %-Zeichen ist die Formatierung der Zahl. Vorkomma-, Nachkommastellen, usw

Mal hier schauen:
http://www.uni-koeln.de/rrzk/kurse/unterlagen/ckurs/ck4.html

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

OK. Ich denke du hast diesen Abschnitt gemeint :




Beispiele fuer die Ausgabe der Zahl  "12.34"  ( 5 Zeichen )
        |123456789012345|    (Spaltennummern)
%f        |12.340000|
%10f        | 12.340000|
%10.0f        |        12|
%15f        |      12.340000|
%-10f        |12.340000 |
%.15f        |12.340000000000000|
%-15f        |12.340000      |
%15.10f        |  12.3400000000|
%-15.10f     |12.3400000000  |



und genau hier ist das gleiche Problem. Es wird in der zweiten Zeile eine "10" vorgeschoben,die eine Leestelle in der Ausgabe bewirkt. IN der dritten Zeile wird dann noch zusätzlich ein ".0" eingegeben, welches die Ausgabe ohne Kommastellen ausgibt. Also ich verstehe es irgendwie nicht. Kann man nun generell sagen dass eine "10" eine LEestelle in der Ausgabe bewirkt oder wie?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

diese 10 bewirkt nur in diesem Fall eine Leerstelle. Bedeutet aber die Zahl 10-stellig ausgeben

10.0 ebenfalls 10-stellig ausgeben, aber ohne Nachkommastellen

10.3 ebenfalls 10-stellig ausgeben, aber mit 3 Nachkommastellen.

ein Minuszeichen vor der Zahl = linksbündig ausgeben, ansonsten rechtsbündig


http://de.selfhtml.org/perl/funktionen/einausgabe.htm#printf

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ok. Ich denke ich komme dem ganzen näher, aber.....
1.
Wenn die 10 für 10stellig steht, warum kommt es dann in diesem Beispiel zu einer Leerstelle,anstatt einem "0" hinter dran?
2.
Wenn 10.0 für eine 10stellige Zahl ohne Kommastellen steht, warum befindet sich dort dann "12" und nicht die 10stellige
"12" ?

Der Rest denke ich, ist mir klar, wobei halt bei 15 zwei mal das gleiche Phänomen auftritt , wie bei der 10,was ich eben nicht verstehe.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

zu 1) ohne Definition werden anscheinend 5 Nachkommastellen ausgegeben

zu 2)
die 12 ist schon 10-stellig
8 x Leerstelle und die 1 und 2, rechtsbündig ausgegeben

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

%.15f        |12.340000000000000| = 15 Nachkommastellen, Gesamtstellen nicht definiert, rechtsbündig
%-15f        |12.340000      | = 15-stellig, linksbündig
%15.10f    |  12.3400000000| = 15-stellig mit 10 Nachkommastellen, rechtsbündig
%-15.10f   |12.3400000000  | = 15-stellig mit 10 Nachkommastellen, linksbündig

Ansicht in einer proportionalen Schriftart wäre zur Darstellung auch besser.

« Letzte Änderung: 08.06.06, 11:52:29 von AchimL »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

OK. Damit ists mir nun klar und ich bedanke mich. Meinst du  mit der proportionalen Schriftart, dass ich den Quellcode beim nächsten mal hervorheben soll oder was meinst du damit?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

nein, nur für die Darstellung der Spalten wäre hier im Forum besser gewesen, dann hätte man die Unterschiede besser gesehen.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Achso...


« C++ lernenBei dem Systemstart automatisch laden ! in C++ ! »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Formatieren
  Das Formatieren einer Festplatte, HDD oder SSD bereitet das Laufwerk auf neue Daten vor. Dazu werden sämtliche alten Daten gelöscht, damit die...

Malware
Mit Malware bezeichnet man allgemein Schadprogramme, die dazu entwickelt worden schädliche Funktionen auf Computern auszuführen. Das Wort setzt sich zusammen au...

Alphanumerische Zeichen
Alphanumerische Zeichen: Damit sind bestimmte Zeichenkombinationen gemeint, die aus Zahlen und einigen Buchstaben bestehen können. Während die Zeichenfolge "123...