On 3/26/12 5:55 AM, Tyro[17] wrote:
You can achieve the same with:

readf(" %s\n", &s2);

My goal however, is not to read one line of information. Rather, it is to
read multiple lines of information from standard input. I get close to
being able to do so if i don't including "\n" as a part of my format string
or if I changing your suggestion to

while (!stdin.eol()) {
s2 = chomp(readln());
}

but again I run into the predicament was before, a need to close the
the stream with Ctrl-D/Ctrl-Z.

I made the decision for the current behavior while implementing readf. Basically I tried to avoid what I think was a mistake of scanf, i.e. that of stopping string reading at the first whitespace character, which is fairly useless.

Over the years scanf was improved with %[...] which allows reading strings with any characters in a set.

Anyway, if I understand correctly, there's no way to achieve what you want unless you read character-by-character and define your own control character. There's no out-of-band character that means "end of this input, but not that of the file".


Andrei

Reply via email to