我想通过为字符串输入指定MAX_LENGTH
来创建一个将在scanf
中使用的格式字符串。我有以下内容,但编译器说它错了:
const int MAX_LENGTH = 50;
char format[9];
sprintf(format, "%%d[^n]s", MAX_LENGTH);
编译器说格式化字符串没有使用数据参数。第一个%
应该被转义,第二个是%d
的一部分,应该从MAX_LENGTH
读取。我该如何做到这一点?顺便说一句,在到达换行符之前,格式字符串最多应读取MAX_LENGTH
个字符。
此处应使用%%
转义%符号,而不是使用%
。