🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #470

Re: MaxonC++light

#470
From: Karl-Heinz Krause
Date: Sun, 24 Sep 1995 08:52
57 lines
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-mail
References: <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)