gpt4 book ai didi

c - sscanf 显示随机字符

转载 作者:太空宇宙 更新时间:2023-11-04 03:54:13 24 4
gpt4 key购买 nike

我有以下代码。我省略了标题。

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com