gpt4 book ai didi

c - scanf() 可变长度说明符

转载 作者:太空狗 更新时间:2023-10-29 16:46:11 25 4
gpt4 key购买 nike

如何使用变量指定 scanf() 应读入的最大字符数?

例如使用 printf() 你可以像这样使用 *

#define MAXVAL 5
printf("Print at maximum MAXVAL chars: %.*s\n", MAXVAL, "myStringHere");

这只会打印 5 个字符,我怎样才能让 scanf 只读入 MAXVAL? MAXVAL 必须用作长度说明符。我不能只是做

scanf("%5s", string);

现在我只能考虑使用 scanf 读入一个大数组,然后使用 ssprintf 将字符串存储到我的长度限制字符串中。然而,使用长度说明符会容易得多。

最佳答案

您可以使用 C 预处理器来帮助您。

#define STR2(x) #x
#define STR(X) STR2(X)
scanf("%" STR(MAXVAL) "s", string);

处理器将 "%"STR(MAXVAL) "s" 合并到 "%5s"

关于c - scanf() 可变长度说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25410690/

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