我想限制使用定义值获得的字符数scanf命令。 以下代码运作良好
scanf("%20s",&stud->student_name);
然后我尝试了那个(MAXNAMELEN定义为20)
scanf("%MAXNAMELENs",&stud->student_name);
它不起作用。 我怎么能只使用scanf呢?
答案 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);