- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要的是:
1) 像 sscanf 一样从字符串中读取2) 测量处理序列的长度,就像 sscanf 使用“%n”一样3) 接受上面的 format
和其他参数(无法控制它)
有办法吗?
size_t read = 0; //Accumulator of the length of processed characters
void readfn (char* source_string, char* fmt, va_list args)
{
int length;
size_t fmtlen = strlen(fmt);
char* fmt_and_lenght = (char*)realloc(fmt, fmtlen + 3);
fmt_and_length[fmtlen] = '%';
fmt_and_length[fmtlen + 1] = 'n';
fmt_and_length[fmtlen + 2] = '\0';
va_list args_and_length = va_append(args, length); //here is the problem, i need to add &length to the list (i dont care if the list is created from scretch
vsscanf(source_str, fmt_and_length, args_and_length); //here i finally capture the length of processed string
read += length; //and i do whatever i wanted to do with it
}
即使 fmt 不包含“%n”并且参数列表之前没有捕获它,它也会简单地计算消耗的字符数?
编辑:如果有 vsnscanf 或者它应该有什么名称,这肯定会更好,这样可以获取已处理的字符数。但我通过将格式字符串按未转义的 % 拆分来解决了这个问题。如果后面没有 *,我会获取一个参数,并迭代地处理所有参数,每次我添加“%n”,最后我会总结长度。
最佳答案
没有可移植的方法来做到这一点。我建议您重构代码,这样您就根本不需要这样做。您也许可以用 ffcall library 拼凑一些东西。 ,但它会变得困惑且脆弱。
关于c - vsscanf 读取长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12943449/
我需要的是: 1) 像 sscanf 一样从字符串中读取2) 测量处理序列的长度,就像 sscanf 使用“%n”一样3) 接受上面的 format 和其他参数(无法控制它) 有办法吗? size_t
我在将代码库从 linux (gcc) 移植到 windows (msvc) 时遇到了问题。似乎 C99 函数 vsscanf 不可用并且没有明显的替代品。 我读过有关使用内部函数 _input_l
C语言sscanf()函数:从字符串中读取指定格式的数据 头文件: ?
我需要一个相当于 Java 中 C 的 vsscanf() 的函数。更详细,我这里有这个: private void parseString(String parseMe, String format
我正在使用类 C API 的嵌入式平台上移植一些代码。原始代码使用 fscanf() 从文件中读取和解析数据。不幸的是,在我的 API 上我没有等效的 fscanf(),因此在实际移植之前,我尝试使用
我想在不使用 vsscanf 的情况下为 C sscanf 实现一个包装函数,因为在我的环境中 vsscanf() 不仅存在 sscanf 在那里。我不想对 sscanf 进行完整的实现,因为为此我需
我是一名优秀的程序员,十分优秀!