如何使用变量指定应读入的最大字符数?
例如,使用scanf()
可以使用
#define MAXVAL 5
printf("Print at maximum MAXVAL chars: %.*s\n", MAXVAL, "myStringHere");
这将只打印5个字符,如何使
printf()
仅在maxval中读取?maxval必须用作长度说明符。我不能就这么做scanf("%5s", string);
现在我只能考虑使用
scanf
读入一个大数组,然后使用scanf
将字符串存储到我的长度限制字符串中。不过,使用长度说明符要容易得多。 最佳答案
你可以使用C预处理器来帮助你。
#define STR2(x) #x
#define STR(X) STR2(X)
scanf("%" STR(MAXVAL) "s", string);
处理器将
"%" STR(MAXVAL) "s"
合并到"%5s"