[C] scanf und double?

Hi Experten!

Ich programmiere unter Linux mit gcc v. 2.95.2. Mein Problem: Scheinbar will scanf double-Zahlen nicht einlesen.

Hier dads Programm:

#include

int main()
{
double *zahl;
*zahl = 100.0;
printf(„Bitte Zahl eingeben :“);
scanf("%f",zahl);
printf(„Eingegeben: %f\n“,*zahl);
}

Egal was ich eingebe, der Ausgabewert ist immer 100, also der definierte Wer. Setze ich zahl auf float oder int, funktioniert es einwandfrei.

Weiss jemand rat?

Gruss

lex.

Hi Experten!

Ich programmiere unter Linux mit gcc v. 2.95.2. Mein Problem:
Scheinbar will scanf double-Zahlen nicht einlesen.

Hier dads Programm:

#include

eingeben :");

scanf("%f",zahl);

Egal was ich eingebe, der Ausgabewert ist immer 100, also der
definierte Wer. Setze ich zahl auf float oder int,
funktioniert es einwandfrei.

Hi Lexus,

das habe ich auch noch nie probiert. Aber versuch es doch mal mit
scanf(%lf,&zahl);

scanf braucht die Adresse der Variable in die geschrieben werden
soll ?!

Zum anderen liest Du eine float ein. Um ein double lesen zu
können ist ein lf notwendig.

Gruß

Micha

Hallo Lexus,

in Deinem Programm wird nur ein Zeiger auf double deklariert, d. h. Du greifst mit diesem Zeiger irgendwo in der Pampa zu. Es sollte etwa so aussehen:

double zahl = 100.0;
printf(„Bitte Zahl eingeben :“);
scanf("%lf",&zahl);
printf(„Eingegeben: %lf\n“,zahl);

Gruß Patrick

hallo
wenn du eine double zahl eingeben möchtest dann musst du
zuerst eine double variable und nicht zeiger auf double denn
die speicher unterschiedlich sind.
einfach
double zahl;
double *zeiger=&zahl;
scanf("%lf",&zahl);
printf("%lf",*zeiger);

du musst zeiger initialiesiren sonst kann es zu fehler führen
sag mir bescheid wenn du es probierst

Hi!

Ja, da hast Du völlig recht! Hat bestens geklappt, danke.

Gruss

Lex.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]