scanf-Problem
-
Hey Leute,
ich habe folgenden Code:
#include <stdio.h> int main (void) { int i; /*kann das auch eine Zahl sein? */ printf("Bitte geben Sie eine Zahl ein : "); scanf("%d",&i); printf("Die Zahl, die Sie eingegeben haben, war %d\n",i); return 0; }
Ich wollte wissen warum bei "int i;" z.B. keine 1,2,3,4,5,6,7,8,9 oder 0 hin kann...odeer kann da eine hin?
DAnke
Schroeerg
-
Bezeichner müssen in C mit einem Buchstaben oder dem _ anfangen.
Wie willst du sonst bei a = b + 2; wissen ob 2 eine Variable oder eine Zahl ist?
-
Ah stimmt okay danke.
und warum steht da z.B. %d und &i ?
-
scanf interpretiert den ersten String und durch %d weiß es dann, dass es ein Integer einlesen soll. Damit scanf die Daten noch loswerden kann übergibt man noch die Adresse der Variablen i. Das ergibt dann &i.
Man kann mit scanf auch mehr Werte auf einmal einlesen.
http://www.cplusplus.com/reference/clibrary/cstdio/scanf/
-
Ah okay danke!
also int ist intege und i ist ein string? oder was davon ist ein string?
-
Das "%d" ist in diesem Fall der String. Erkennbar an den "
Das "Bitte geben Sie eine Zahl ein : " ist auch einer.
Und "Die Zahl, die Sie eingegeben haben, war %d\n" auch.In diesem Fall sind das alles Stringliterale.
-
Achso okay.
Wo haben Sie C gelernt?
-
Selbst beigebracht.
Aus einem Buch aus Papier.
-
Achso okay...! Wenn ich weitere Fragen habe melde ich mich "unregistrierter" ;-)!
(Wahrscheinlich bald)
Schroeerg
DANKE