c-使用sprintf制作格式化字符串



我想通过为字符串输入指定MAX_LENGTH来创建一个将在scanf中使用的格式字符串。我有以下内容,但编译器说它错了:

const int MAX_LENGTH = 50;
char format[9];
sprintf(format, "%%d[^n]s", MAX_LENGTH);

编译器说格式化字符串没有使用数据参数。第一个%应该被转义,第二个是%d的一部分,应该从MAX_LENGTH读取。我该如何做到这一点?顺便说一句,在到达换行符之前,格式字符串最多应读取MAX_LENGTH个字符。

此处应使用%%转义%符号,而不是使用%

最新更新