On Friday, 9 April 2021 at 16:11:26 UTC, Oleg B wrote:

Is space a special char for `formattedRead` and it simple stop parse without throwing exception if not found space (that represented in fmt string)?
Have `formattedRead` any other special chars?
Or it's bug?

I think it's a bug:

The char 0x20 is meant to be skipped till end of the string or a parseable char in the format string by the function readUpToNextSpec().

If the function found a whitespace in the input string, it's fine and skipped as long there is another whitespace char. But if the input string range is already done, it also does just nothing anymore. For other chars if would throw the 'Cannot find character' exception.


But the source declared this as "backwards compatibility":

```
string s = " 1.2 3.4 ";
double x, y, z;
assert(formattedRead(s, " %s %s %s ", &x, &y, &z) == 2);
assert(s.empty);
assert(approxEqual(x, 1.2));
assert(approxEqual(y, 3.4));
assert(isNaN(z));
```

So it seems to be a desired behaviour.

Reply via email to