在从 char 数组读取之前,我想跳过任何分号或换行符。我写了这样的代码:
char[] buf;
// buf initialized
double val = 0.0;
sscanf(buf, "%[;\n]%lf", &val);
但如果 buf 开头没有分号或换行符,则不起作用。如何更改该代码以仅在它们存在时才跳过这两个字符?
编辑:sscanf(buf, "%*[;\n]%lf", &val);
也不起作用。
测试样本 buf 值:“67.445906;20.239875;89.577929;6.350902;7.788324\n19.806513;69.875179;”
编辑 2:我在C++ 参考中关于说明符的部分中读到“除了 %n,任何说明符都应使用至少一个字符。否则匹配失败,扫描到此结束。”