문제

Quick question: I am using data from a .conf file to connect to a Gameserver; I'm using sscanf to parse through the file, whitespaces being ignored as they should, however to test my programs efficiency, I took out all whitespaces on the Port-number line, an voilà, it's not working anymore.... The original format in the .conf file ist just plain Portnumber=XXXX; How can I make sscanf() exclude de equal sign? I'm using it as follows:

sscanf(line, "%s = %s", parameter_name, parameter_value);   
    debug(parameter_name);
    debug(parameter_value);

and parameter_name just saves the entire line at once... I tried using

    sscanf(line, "%s %[^=]s", parameter_name, parameter_value);

to make him save the second parameter while using everything else aside the '=', but it is not working... any one have an idea? I can't seem to find a real full list of format specifier tags on the net...

cheers

올바른 솔루션이 없습니다

다른 팁

man scanf should give you the full list of identifiers and their description.

Anyway, none of your attempts works because the first %s will eat everything until it finds a whitespace. This is the default behavior. You need to use %[^=] in the first format specifier:

sscanf(line, "%[^= ] = %s", parameter_name, parameter_value);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top