gpt4 book ai didi

C - snprintf 之后不输出

转载 作者:行者123 更新时间:2023-11-30 15:04:07 24 4
gpt4 key购买 nike

我正在使用 C 语言(指针、指针-指针等,我喜欢它)做我的第一步,所以如果这是一个愚蠢的问题,请仁慈。

该片段不输出任何内容:

char buf[256];
snprintf(buf, sizeof buf, "output: %s%s%s");

puts("test");

这个片段输出“test”(如预期):

char buf[256];
snprintf(buf, sizeof buf, "output: %s%s");

puts("test");

=>test

问题: snprintf 在这里扮演什么角色?与 put 语句有任何关系吗?或者为什么在第一个代码中 put 没有效果/输出?

最佳答案

因为 snprintf(buf, sizeof buf, "output: %s%s%s"); 需要 3 个参数:

snprintf(buf, sizeof buf, "输出:%s%s%s", str1, str2, str3);

snprintf(buf, sizeof buf, "output: %s%s"); 需要 2 个参数:

snprintf(buf, sizeof buf, "输出:%s%s", str1, str2);

如果您不将参数传递给 snprintf 函数并不意味着 snprintf 不会尝试访问它们。因此,您看到的结果是由于 snprintf 尝试访问不存在的“str3”参数而导致的段错误结果。

关于C - snprintf 之后不输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40428243/

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