On 12/25/13 1:06 PM, Ali Çehreli wrote:
On 12/25/2013 12:43 PM, Gordon wrote:> -- in C -- > char a[100] = {0}; > chat *input = "hello world 42"; > sscanf(input, "%s", &a); > -- in D -- > string a; > string input = "hello world 42"; > formattedRead(input,"%s", &a); > ----------- > > In "C", the variable "a" would contain only "hello"; > In "D", the variable "a" would contain "hello world 42"; > > BUT, > If the format string would be "%s %s %d" (and we had three variables), > then "formattedRead()" would behave exactly like "sscanf()". That is by design. Since a string can contain space characters, the normal behavior is to read everything as a part of the the string. scanf is defined differently.
Yah, that's intentional. scanf has its usefulness slashed to a fraction because of the way it handles strings. People added %[...] to compensate for that; I chose to just fix it.
Andrei
