111

Lisa via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Feb 19 20:15:50 PST 2016


On Saturday, 20 February 2016 at 03:43:17 UTC, Ali Çehreli wrote:
> On 02/19/2016 07:37 PM, Lisa wrote:
>
> > import std.stdio;
> > import std.math;
> >
> > int main()
> > {
> >      double a, b, c, p;
> >
> >      writef("Enter a: ");
> >      scanf("%d", &a);
>
> scanf is not a safe function. It trusts the format string and 
> assumes that 'a' really is what the programmer told it. (For 
> example, although 'a' is not an 'int, %d means 'int' and scanf 
> treats it as such.)
>
> The correct format identifier for double is %lf. You need to 
> replace all three of with %lf.
>
> However, you are not writing idiomatic D code. I recommend 
> dropping C functions altogether an taking advantage of readf():
>
>   http://ddili.org/ders/d.en/input.html
>
> Ali

module main;

import std.stdio;
import std.math;

int main() {
	int A, B, C;
	writef("A = ");
	readf("%lf", %A);

	writef("B = ");
	readf("%lf", %B);

	writef("C1= ");
	readf("%lf", %C);

	writefl("P = (%lf)", A + B + C);
	return 0;
}

It whatever doesn't work


More information about the Digitalmars-d-learn mailing list