014
20.08.2003, 10:48 Uhr
0xdeadbeef
Gott (Operator)
|
@Pablo: scanf und printf können allerdings zu ziemlich bösen Fehlern führen. Schau dir das hier an:
C++: |
printf("%d%\n", prozentzahl); /* <- Hoppla, Tipfeeler... */
|
Kompiliert, aber baut Mist. Oder noch schöner:
C++: |
printf("%c%c%c%c%c", a, b, c, d); /* <-- 5 %cs auf 4 Zeichen */
|
Oder nimm scanf:
C++: |
scanf("%s %s %s %s", s1, s2, s3); /* SIGSEGV vorprogrammiert */
|
Wenn du solche Fehler an einer Stelle im Programm hast, an der man nur selten vorbeikommt, ist das nicht gut. Oder noch besser - lass es sscanf oder fscanf sein. Vertipp dich da, und du kriegst keine Ausgabe, mit der du was anfangen kannst. Damit kriegst du die schönsten Heisenbugs, und das Debuggen macht nachher richtig Spaß. Und jetzt die Äquivalente, C++-Stil:
C++: |
cout << prozentzahl << "%"; cout << a << b << c << d; cin >> s1 >> s2 >>s3; // Wenn du sichergehen willst (willst du) nimmst du hier std::strings.
|
Wenn du dich da vertippst, kriegt es schon der Compiler mit. Generell gilt sowieso: Wenn du es irgendwie zur Compilezeit festzurren kannst, dann mach es auch. Es vermeidet Fehler und ist tendenziell performanter. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 20.08.2003 um 10:49 Uhr von 0xdeadbeef editiert. |