A specifier readf() for BigInt

Ivan Kazmenko via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Feb 16 23:20:18 PST 2015


On Monday, 16 February 2015 at 19:52:20 UTC, Dennis Ritchie wrote:
> Hi.
> And how to read Data from the input stream?
>
> import std.stdio;
> import std.bigint;
>
> void main() {
>
> 	BigInt n;
>
> 	readf(" %?", &n);
>
> 	writeln(n);
> }

The readf function does not seem to support reading BigInts 
directly.

However, you can read a string and construct a BigInt from it, 
either by std.conv.to or directly invoking the constructor:

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

void main () {
     // read a line of space-separated BigInts and print their sum:
     readln.split.map !(to!BigInt).sum.writeln;
     // read a line containing one BigInt and print it squared:
     auto s = BigInt (readln.strip);
     writeln (s ^^ 2);
}


More information about the Digitalmars-d-learn mailing list