Я думаю, это зависит от того, как вы его используете: если вы сканируете что-то вроде int
, это нормально. Если вы сканируете строку, это не так (если не было поля ширины, которое я забыл?).
Редактировать
Это не всегда безопасно для сканирования строк.
Если ваш размер буфера является постоянным, то вы, безусловно, можете указать его как %20s
. Но если это не константа, вам нужно указать ее в строке формата, и вам нужно будет сделать:
char format[80]; //Make sure this is big enough... kinda painful
sprintf(format, "%%%ds", cchBuffer - 1); //Don't miss the percent signs and - 1!
sscanf(format, input); //Good luck
, что возможно, но очень легко ошибиться, как я делал в моем предыдущем редактировании (забыл позаботиться о нулевом терминаторе). Вы можете даже переполнить буфер строки формата.