Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sscanf skip over white-space in beginning

Tags:

c

scanf

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.

like image 735
Matt Avatar asked Oct 20 '10 06:10

Matt


1 Answers

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.

like image 85
Matthew Flaschen Avatar answered Oct 25 '22 16:10

Matthew Flaschen