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

时间:2018-03-04 14:55:42

标签: c input scanf

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

一对define s允许对另一个define

进行字符串化
#define MAXNAMELEN 20
#define LENSTR_(x) #x
#define LENSTR(x) LENSTR_(x)

用作

char str[MAXNAMELEN + 1] = "";
result = scanf ( "%"LENSTR(MAXNAMELEN)"s", str);