[Issue 1668] New: std.stream readf can't read int, nan, inf as floats

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Nov 13 16:51:58 PST 2007


http://d.puremagic.com/issues/show_bug.cgi?id=1668

           Summary: std.stream readf can't read int, nan, inf as floats
           Product: D
           Version: 1.023
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: wbaxter at gmail.com


std.stream readf can't read int, nan, inf as floats.

This means that readf can't read in everything that writef prints out, even if
you know the exact order of elements in the stream.

Here are some tests:

//===========================================================================
module rwnans;
import std.stdio;
import std.stream;

void try_rwop(float x, string fmt="")
{
    writefln("--- Test x=%f", x);
    auto S = new MemoryStream();
    S.writef(fmt, x);
    S.position = 0;
    writefln("S buffer contains '%s'", S.readLine());
    S.position = 0;

    float y;
    int got = S.readf(&y);

    writefln("read %d bytes, got y = %s", got, y);
}

void main()
{
    try_rwop(1.0);
    try_rwop(1.0,"%f");
    float x; // nan
    try_rwop(x);
    try_rwop(x,"%f");
    x = 1.0/0.0 ; // inf
    try_rwop(x);
    try_rwop(x,"%f");

    try_rwop(-x);
    try_rwop(-x,"%f");
}


-- 



More information about the Digitalmars-d-bugs mailing list