digitalmars.D - What is a stdio module without input capability?
- Tyro (19/19) Jul 29 2006 Answer: std.stdio! About as incomplete and undesirable as they come.
- Jarrett Billingsley (11/29) Jul 29 2006 Meh, if you're so worried about using one module, just always use
- Tyro (21/58) Jul 29 2006 Nah! I'm not really worried about using multiple packages. I've been
Answer: std.stdio! About as incomplete and undesirable as they come. IMNSHO this is a feature that is long overdue. Why exactly do I need call upon two separate modules to get the functionality promised in one? Can we please get a complete stdio module. I know this is about the last thing on the minds of professionals lurking here in D-dom, but for some (myself included) it is still very important. import std.stdio: writef; import std.cstream: din; writef("Something important!\n"); din.readf(&someInput); Yes, it is trivial. Yes, it can be accomplished. But it is unintuitive and certainly not what is promised by a "stdio" module. And while we are on the subject! I know printf() holds a place near and dear to the hearts of all those who've ever used it. But since this is D and not C, doesn't the D io routines deserve at least the same privileges the C ones do? Is their anyway that we can have writef()/writefln() take the place of printf() in the object module? Barring that, can they at least be included alongside the great printf()? Andrew C. Edwards
Jul 29 2006
"Tyro" <ridimz yahoo.com> wrote in message news:eafemu$6mc$1 digitaldaemon.com...Answer: std.stdio! About as incomplete and undesirable as they come. IMNSHO this is a feature that is long overdue. Why exactly do I need call upon two separate modules to get the functionality promised in one? Can we please get a complete stdio module. I know this is about the last thing on the minds of professionals lurking here in D-dom, but for some (myself included) it is still very important. import std.stdio: writef; import std.cstream: din; writef("Something important!\n"); din.readf(&someInput); Yes, it is trivial. Yes, it can be accomplished. But it is unintuitive and certainly not what is promised by a "stdio" module.Meh, if you're so worried about using one module, just always use std.cstream : dout, din. If nothing else, it's more consistent. dout.writefln("Something important!"); din.readf(&someInput); Personally I think merging std.stdio and std.cstream would make sense, since then writef[ln] would just become shims for calling dout.writef[ln], and there would be readf as a shim for din.readf.And while we are on the subject! I know printf() holds a place near and dear to the hearts of all those who've ever used it. But since this is D and not C, doesn't the D io routines deserve at least the same privileges the C ones do? Is their anyway that we can have writef()/writefln() take the place of printf() in the object module? Barring that, can they at least be included alongside the great printf()?I hate printf and I hope it dies and is never used all over the phobos source again.
Jul 29 2006
Jarrett Billingsley wrote:"Tyro" <ridimz yahoo.com> wrote in message news:eafemu$6mc$1 digitaldaemon.com...Nah! I'm not really worried about using multiple packages. I've been doing it for four years and can continue for another forty. My complaint is that the "standard" input/output module should facilitate both input and output as its name implies. If there is no intent on providing both functionalities, simply rename the module to std.stdout or std.output (or anything more indicative of its content) so the user knows exactly what [s]he's getting by importing such a module.Answer: std.stdio! About as incomplete and undesirable as they come. IMNSHO this is a feature that is long overdue. Why exactly do I need call upon two separate modules to get the functionality promised in one? Can we please get a complete stdio module. I know this is about the last thing on the minds of professionals lurking here in D-dom, but for some (myself included) it is still very important. import std.stdio: writef; import std.cstream: din; writef("Something important!\n"); din.readf(&someInput); Yes, it is trivial. Yes, it can be accomplished. But it is unintuitive and certainly not what is promised by a "stdio" module.Meh, if you're so worried about using one module, just always use std.cstream : dout, din. If nothing else, it's more consistent.dout.writefln("Something important!"); din.readf(&someInput); Personally I think merging std.stdio and std.cstream would make sense, since then writef[ln] would just become shims for calling dout.writef[ln], and there would be readf as a shim for din.readf.Not a bad idea at all. But to be quite honest, as long as the solution is complete, consistent, and intuitive, I don't rightly care how it is implemented.Couldn't agree more! -- Andrew C. Edwards ----------------------------------------------------- The truth we call D, has passed through three stages: First, it was ridiculed; Then, it was violently opposed; and And now, it is being accepted as self-evident. Consequently: C/C++ is rapidly approaching Stage 5 (being forgotten)!And while we are on the subject! I know printf() holds a place near and dear to the hearts of all those who've ever used it. But since this is D and not C, doesn't the D io routines deserve at least the same privileges the C ones do? Is their anyway that we can have writef()/writefln() take the place of printf() in the object module? Barring that, can they at least be included alongside the great printf()?I hate printf and I hope it dies and is never used all over the phobos source again.
Jul 29 2006