格式说明符在C中排除'='

时间:2014-01-07 14:56:43

标签: c scanf format-specifiers

快速提问:我正在使用.conf文件中的数据连接到Gameserver;我正在使用sscanf来解析文件,空格被忽略,但是为了测试我的程序效率,我拿出了端口号行上的所有空格,一个vo,它不再工作了.... .conf文件中的原始格式只是普通的Portnumber = XXXX;如何使sscanf()排除de等号?我正在使用它如下:

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

和parameter_name只是一次保存整行...我尝试使用

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

让他保存第二个参数,同时使用除'='之外的所有内容,但它不起作用......任何人都有想法?我似乎无法在网上找到格式说明符标签的真正完整列表...

欢呼声

1 个答案:

答案 0 :(得分:0)

man scanf应该为您提供标识符及其说明的完整列表。

无论如何,你的尝试都没有用,因为第一个%s会吃掉所有东西,直到它找到一个空格。这是默认行为。您需要在第一个格式说明符中使用%[^=]

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