限制字符数scanf将使用定义值[duplicate]读取

问题描述 投票:2回答:1

这个问题在这里已有答案:

我想限制使用定义值得到的字符数scanf命令。以下代码运行良好

scanf("%20s",&stud->student_name);

但后来我尝试了那个(MAXNAMELEN定义为20)

scanf("%MAXNAMELENs",&stud->student_name);

它不起作用。我怎么能只使用scanf呢?

c input scanf
1个回答
1
投票

一对defines允许串起另一个define

#define MAXNAMELEN 20
#define LENSTR_(x) #x
#define LENSTR(x) LENSTR_(x)

用于

char str[MAXNAMELEN + 1] = "";
result = scanf ( "%"LENSTR(MAXNAMELEN)"s", str);
© www.soinside.com 2019 - 2024. All rights reserved.