Article View: de.comp.lang.c++
Article #470Re: MaxonC++light
From: Karl-Heinz Krause
Date: Sun, 24 Sep 1995 08:52
Date: Sun, 24 Sep 1995 08:52
57 lines
2388 bytes
2388 bytes
Am 21. Sept. schrieb ich folgenden Unsinn:
>Frank@konnex.bergisch-land.sub.de (Frank Kulok) schrieb:
>
>>Hallo,
>>ich hab hier ein kleines Problem, solange ich die beiden
>>SCANF-Routinen nicht mit einbaue läuft das Programm
>>einwandfrei. Baue ich sie mit ein und lasse sie mit dem
>>MaxonC++light Compiler V3.00.00, 31.10.94 übersetzen
>>und starten, steigt der Rechner nach der Eingabe der
>>ersten scanf-funktion aus. Wo mache ich den Fehler?
>
>>#include <stdio.h>
>>#include <math.h>
>
>>void main()
>>{
>> float sz, tt, svm;
>
>> printf ("Geben Sie den Wert für die Zugspannung in N/mm^2 ein: ");
>> scanf ("%f", &sz);
>
>> printf ("und den Wert für die Verdrehspannung in N/mm^2: ");
>> scanf("%f", &tt);
>>
>> // usw.
>>}
>
>Es handelt sich nicht um einen Compiler-Bug, sondern um einen
>Programmfehler. Bei einem Formatelement "%f" muß der entspechende
>Parameter den Typ double haben (und nicht float). Es reicht also, die
>erste Zeile von "main" zu ersetzen durch
>
> double sz, tt, sym;
>
>Daß es bei GNU funktioniert, liegt daran, daß der GNU-Compiler die
>Formatstrings überprüft, was aber nicht normal ist bei C++.
>
Ich entschuldige mich hiermit dafür. Selbstverständlich wird bei "%f"
float und bei "%lf" double verwendet. Ich habe hier scanf mit printf
verwechselt. Bei printf wird ein float-Argument automatisch zu double
erweitert, so daß es egal ist, ob man "%f" oder "%lf" schreibt.
Falls es sich um einen DOS- (oder WIN16-)Compiler handelt, so könnte der
Fehler daran liegen, daß die falsche Zeigergröße angenommen wird.
Versuche einmal
scanf("%f", (float near*)&sz);
oder
scanf("%f", (float far*)&sz);
je nach Speichermodell.
mfg. Karl-Heinz
Technical Details
Message-ID:
<44367o$etq@news00.btx.dtag.de>Path:
arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mailReferences:
<wVZZZMD0aez2@holly.konnex.bergisch-land.sub.de> <43s2on$81j@news00.btx.dtag.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail From: Karl-Heinz Krause <0913148778-0001@t-online.de> Newsgroups: de.comp.lang.c++,fras.text.programmieren Subject: Re: MaxonC++light Date: 24 Sep 1995 08:52:08 GMT Organization: Telekom Online Internet Gateway Message-ID: <44367o$etq@news00.btx.dtag.de> References: <wVZZZMD0aez2@holly.konnex.bergisch-land.sub.de> <43s2on$81j@news00.btx.dtag.de> NNTP-Posting-Host: funnel02.btx.dtag.de Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Mailer: Mozilla 1.1I [de] (Windows; I; 16bit)