Вот прототип функции sscanf()
, как описано в cplusplusreference
(link):Исправить прототип sscanf(), "int sscanf (const char * s, const char * format, ...);" или int sscanf (char * s, const char * format, ...) ;?
int sscanf (const char * s, const char * format, ...);
Но я нахожу что-то подозрительное о it.Not только делает вид первого аргумента отличается от многих других функций строки библиотеки как strcpy()
(1) и strcat()
(2) (const char*
vs char*
), но также представляется странным, как мы можем сделать массив, на который указывает первый аргумент константа, когда сама цель функции состоит в том, чтобы написать ему (изменить содержимое массив), используя этот указатель !!
Я имею в виду, в int sscanf (const char * s,const char * format, ...);
мы не говорим через const
классификаторе, что мы не можем изменить массив, на который указывает s
с помощью s
? Это опечатка на этом сайте или я что-то не понимаю? Пожалуйста, объясните.
Голосовать за закрытие, так как OP желает, чтобы он был удален, и в будущем он никому не поможет. – hmjd
Вы можете найти правильный прототип в спецификации POSIX ['sscanf()'] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/sscanf.html). –
@JonathanLeffler Это нормально, если я ссылаюсь на ту ссылку, которую вы дали впредь вместо Cplusplusreference? – Jugni