快速提问:我正在使用.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);
让他保存第二个参数,同时使用除'='之外的所有内容,但它不起作用......任何人都有想法?我似乎无法在网上找到格式说明符标签的真正完整列表...
欢呼声
答案 0 :(得分:0)
man scanf
应该为您提供标识符及其说明的完整列表。
无论如何,你的尝试都没有用,因为第一个%s
会吃掉所有东西,直到它找到一个空格。这是默认行为。您需要在第一个格式说明符中使用%[^=]
:
sscanf(line, "%[^= ] = %s", parameter_name, parameter_value);