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