"data argument not used by format string"-6ren"> "data argument not used by format string"-int y = strlen(target); sscanf(p,"%*s",y,buffer); 为什么上面的代码会导致 warning: data argument not used by for-6ren">
gpt4 book ai didi

c - 可变字符串限制 "%*s"与 sscanf() ==> "data argument not used by format string"

转载 作者:行者123 更新时间:2023-12-05 08:49:40 24 4
gpt4 key购买 nike

int y = strlen(target);
sscanf(p,"%*s",y,buffer);

为什么上面的代码会导致 warning: data argument not used by format string ??

使用 Apple clang 版本 11.0.0 (clang-1100.0.33.17) 编译。

目标:将与字符串target中相同数量的字符放入字符串buffer中,其中p 是一个 char * 指向字符串的某个元素。

最佳答案

其他答案解释说 sscanf 不提供从参数中获取字段宽度。但关于这一点:

Aim : To get the same number of characters as in a string target into the string buffer, where p is a char * pointing to some elementof a string.

sscanf() 等 I/O 函数是比较重量级的。如果您只想将一个字符串(的一部分)复制到另一个字符串,那么 memcpy()strncpy() 将更适合这项任务。或 strncat(),其特性使其在执行此特定任务时优于其他两个,因为有了它,您就没有超出 memcpy() 的源字符串的风险> 会带来,或者需要手动确保终止 memcpy()strncpy() 附带的结果。示例:

*buffer = '\0';         // start with an empty string
strncat(buffer, p, y); // concatenate the wanted region of the source string

关于c - 可变字符串限制 "%*s"与 sscanf() ==> "data argument not used by format string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63543456/

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