On Thursday, 23 April 2015 at 17:18:01 UTC, kerze wrote:
Hy, i'm new @ D and i come from python.
Sorry for my engish, i understand good, but i write like a cow spanish.

I make a little programm to add human's name and age and a function to write out alls humans in the list.

Here is the source:

http://dpaste.dzfl.pl/0a0da462225d

The problem is, it writes instant "Name: Age:" at the standart output.

I'm little confuse about readf and readline, what to use. or its the failure in write ?

I hope anybody can help me, as long as anybody understand me and my problem. ;)

Greetings from Swiss.

Kerze

I can offer, for example, such an option:

-----
import std.conv;
import std.stdio;
import std.string;
import std.typecons;

Tuple!(string, ushort)[] humanList;

void printHumanList() {

        foreach (e; humanList) {
                writeln(e[0]);
                writeln(e[1]);
        }
}

void addNewHuman(){

        write("Age: ");
        ushort age = readln.strip.to!ushort;

        write("Name: ");
        string name = readln.strip;

        humanList ~= tuple(name, age);
}



void main(){

        char choice;

        for(;;) {

                writeln("A)dd New Human.");
                writeln("P)rint Human List.");
                writeln("Q)uit.");
                write(": ");

                choice = readln.strip.to!char;

                switch (choice){
                case('A'):
                        addNewHuman;
                        break;
                case('P'):
                        printHumanList;
                        break;
                case('Q'):
                        return;
                default:
                        continue;
                }
        }
}

Reply via email to