我有以下代码。我省略了标题。
char teacher[1024];
char subject[1024];
sscanf(data,"teacher=%s&subject=%s",teacher,subject);
puts(teacher);
puts(subject);
为什么代码会输出随机的未知字符,如 Xè|· Ϻ¿
?可能是什么问题呢?是 %s
吗?谢谢!
最佳答案
发生这种情况是因为 sscanf
没有找到任何要放入 teacher
和/或 subject
的数据,因此它们未初始化。您应该初始化它们,并添加确保 sscanf
设置它们的代码,如下所示:
char teacher[1024] = "";
char subject[1024] = "";
if (sscanf(data,"teacher=%s&subject=%s",teacher,subject) == 2) {
puts(teacher);
puts(subject);
} else {
printf("Error reading teacher and subject.\n");
}
要修复,请将第一个 %s
更改为 %[^&]
,如下所示:
sscanf(data,"teacher=%[^&]&subject=%s",teacher,subject);
这将使 sscanf
在到达 &
符号时停止读取第一个字符串。
关于c - sscanf 显示随机字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18300944/