Smartest way to read a number?
Tobias Brandt
tob.brandt at googlemail.com
Thu Nov 10 13:58:24 PST 2011
import std.stdio;
T readNumber(T)()
{
T result;
stdin.readf("%s", &result);
return result;
}
Throws a ConvException if the input string wasn't in the right format.
On 10 November 2011 22:48, Fabian <talk2fab at online.de> wrote:
> Hey guys.
>
> I just want to write a few console applications. Usualy I have to read numbers
> to calculate some values. But what's the smartest way to read and convert the
> input?
>
> I've coded these lines:
>
> import std.stdio, std.string, std.conv;
>
> T readNumber(T)()
> {
> string buffer;
> stdin.readln(buffer);
> buffer = chomp(buffer);
>
> if(isNumeric(buffer))
> {
> return parse!T(buffer);
> }
> else
> {
> throw new Exception("Input is not a number!");
> }
> }
>
> void main()
> {
> try
> {
> int n = readNumber!int();
> writeln(n);
>
> float f = readNumber!float();
> writeln(f);
> }
> catch(Exception e)
> {
> writeln(e.msg);
> }
> }
>
> Can I use that function or is there a cleaner way to do this job?
>
> Greetings
> Fabian
>
More information about the Digitalmars-d-learn
mailing list