On Fri, 03 Aug 2012 08:05:46 +0200, Ali Çehreli <acehr...@yahoo.com> wrote:

On 08/02/2012 09:17 PM, Zeh wrote:
 > Hi, i am just a newbie trying learn D. But, i get having some trouble
 > with "read_bool". More specifically on program of this lesson:

As Timon said, read_bool() is a separate function on the same page, a little after main():

bool read_bool(string message)
{
     // Print the message
     writef(message ~ "(false or true) ");

     // Read the line as a string
     string input;
     while (input.length == 0) {
         input = chomp(readln());
     }

     // Produce a 'bool' value from that string
     bool result = to!bool(input);

     // Return the result to the caller
     return result;
}

Unlike Timon's function, you must enter either "false" or "true" with the one above.

Ali


What tutorials is this? Here's another version:

import std.stdio, std.string, std.conv;

bool read_bool(in string message) { // in as we don't escape or modify the input
    while(true) { // loop until we get true/false
        write(message, " (false or true): "); // avoid concat allocation
        string input;
        do { // no need to check input on entering
            input = readln().chomp(); // UFCS
        } while(!input); // no need to check length

        try
            return input.to!bool;
        catch {} // don't care if it's not true/false. Keep nagging
    }
}

void main() {
    auto input = read_bool("Do it?");
    writeln(input ? "Hell yeah, do it!" : "No way!");
}

Reply via email to