对于一个项目,我试图从字符串中读取一个 int 和一个字符串。唯一的问题是sscanf()
似乎打破了阅读%s
当它看到一个空格时。有什么办法可以绕过这个限制吗?这是我正在尝试做的一个例子:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
int age;
char* buffer;
buffer = malloc(200 * sizeof(char));
sscanf("19 cool kid", "%d %s", &age, buffer);
printf("%s is %d years old\n", buffer, age);
return 0;
}
它打印的内容是:cool is 19 years old
我需要的地方cool kid is 19 years old
。有谁知道如何解决这一问题?
下面一行将开始读取一个数字(%d
) 后跟任何不同于制表符或换行符的内容 (%[^\t\n]
).
sscanf("19 cool kid", "%d %[^\t\n]", &age, buffer);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)