1

簡単な質問: .conf ファイルのデータを使用してゲームサーバーに接続しています。私は sscanf を使用してファイルを解析していますが、空白は無視されますが、プログラムの効率をテストするために、Port-number 行のすべての空白を削除しました。 .conf ファイルの形式は単純な Portnumber=XXXX; です。sscanf() で等号を除外するにはどうすればよいですか? 私は次のように使用しています:

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

そして parameter_name は行全体を一度に保存するだけです...私は使ってみました

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

「=」以外のすべてを使用しながら2番目のパラメーターを保存するようにしますが、機能していません...誰にもアイデアがありますか? ネット上でフォーマット指定子タグの完全なリストを見つけることができないようです...

乾杯

4

1 に答える 1

0

man scanf識別子とその説明の完全なリストが表示されます。

とにかく、最初の試み%sは空白が見つかるまですべてを食べてしまうため、うまくいきません。これがデフォルトの動作です。%[^=]最初のフォーマット指定子で使用する必要があります。

sscanf(line, "%[^= ] = %s", parameter_name, parameter_value);
于 2014-01-07T14:59:54.413 に答える