tags:

views:

75

answers:

1

I want to read in a string and parse it with sscanf. Although i don't want to read in any spaces in the beginning.

Sample string.

@a Bear Tiger

sscanf(strLine, "@%1s %64s %64s", dir, name1, name2);

I have that.

Problem is if the line goes in as say

        @a Bear Tiger

Should be:

@a Bear Tiger

that it will want to read in the spaces up to the @ character. How can i skip over white-space and read from the @ character.

Thanks.

+9  A: 
sscanf(strLine, " @%1s %64s %64s", dir, name1, name2);

This is necessary because scanf only skips whitespace for (most) conversion specifications. But @ is an "ordinary character", not a conversion specification, so there is no skip. However, adding whitespace to the format string forces input whitespace to be skipped.

Matthew Flaschen
+1, that should work. Was wondering why you deleted the answer.
codaddict
@coda, I was second-guessing my answer for the reason stated in the two deleted answers. `scanf` *does* skip whitespace in specifications. However, I've figured out the distinction.
Matthew Flaschen
Weird, i thought i had tried this. Thanks!
Matt