www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - A specifier readf() for BigInt

reply "Dennis Ritchie" <dennis.ritchie mail.ru> writes:
Hi.
And how to read Data from the input stream?

import std.stdio;
import std.bigint;

void main() {

	BigInt n;

	readf(" %?", &n);

	writeln(n);
}
Feb 16 2015
parent reply "Ivan Kazmenko" <gassa mail.ru> writes:
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); }
Feb 16 2015
parent "Dennis Ritchie" <dennis.ritchie mail.ru> writes:
On Tuesday, 17 February 2015 at 07:20:19 UTC, Ivan Kazmenko wrote:
 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);
 }
Thanks.
Feb 17 2015