gpt4 book ai didi

c - 使用 scanf 的最大字符串长度 -> ANSI C

转载 作者:太空狗 更新时间:2023-10-29 17:15:53 25 4
gpt4 key购买 nike

我有:

#define MAX_STR_LEN 100

我想放入 scanf 模式,这样我就可以控制字符串长度:

scanf("%100[^\n]s",sometext)

我试过:

scanf("%MAX_STR_LEN[^\n]s",sometext)
scanf("%"MAX_STR_LEN"[^\n]s",sometext)
scanf("%",MAX_STR_LEN,"[^\n]s",sometext)

但它没有用。我只是想避免缓冲区溢出,因为“sometext”是用 malloc(MAX_STR_LEN)...

分配的

有什么想法吗?

最佳答案

我对这些解决方案中的任何一个都不满意,所以我进一步研究并发现了 GNU GCC 宏 stringification

可以用作:

#define XSTR(A) STR(A)
#define STR(A) #A
#define MAX_STR_LEN 100
scanf("%"XSTR(MAX_STR_LEN)"[^\n]s", sometext)

也许 VS2010 提供类似的东西?

关于c - 使用 scanf 的最大字符串长度 -> ANSI C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17314796/

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