如何使用变量来指定最大字符数scanf()
应该读进去吗?
例如使用printf()
你可以像这样使用 *
#define MAXVAL 5
printf("Print at maximum MAXVAL chars: %.*s\n", MAXVAL, "myStringHere");
这只会打印 5 个字符,我该如何制作scanf
只读取MAXVAL? MAXVAL 必须用作长度说明符。我cannot简单地做
scanf("%5s", string);
现在我只能想到使用读入一个大数组scanf
然后使用ssprintf
将字符串存储到我的长度有限的字符串中。然而,使用长度说明符会容易得多。
您可以使用 C 预处理器来帮助您完成此任务。
#define STR2(x) #x
#define STR(X) STR2(X)
scanf("%" STR(MAXVAL) "s", string);
该处理器结合了"%" STR(MAXVAL) "s"
to "%5s"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)