sprintf не объявлен в области?
У меня есть небольшой фрагмент кода здесь из того, что я разработал, но я продолжаю получать ошибку sprintf, не объявленную в области видимости?
Я включаю что-то в #includes или как я могу заставить это работать? Я работал над этим на VS у своих мам, но вернулся домой, и я не могу получить его на кодовых блоках
if (tmp2 <= B_dest[hr - 6])
{
sprintf(name, "B%d", tmp3);
}else{
sprintf(name, "A%d", tmp3);
}
Ответы
Ответ 1
Вам нужно включить stdio.h
.
#include<stdio.h>
stdio.h
объявляет функцию sprintf
Без заголовка компилятор не может понять, что означает sprintf
и, следовательно, он дает вам ошибку.
В C++ Обратите внимание, что,
Включение cstdio
импортирует имена символов в пространстве имен std
и, возможно, в глобальном пространстве имен.
В том числе stdio.h
импортирует имена символов в глобальном пространстве имен и, возможно, в пространстве имен std
.
То же самое относится ко всем заголовкам c-style.
Ответ 2
Убедитесь, что вы #include <cstdio>
и доступ к sprintf как std::sprintf()
как указано @Potatoswatter.
или выполните старый стиль c: #include <stdio.h>
чтобы включить определение sprintf.
Ответ 3
У меня была аналогичная проблема с C :: B и выяснилось, что проблема - это больше, чем просто пути к компилятору - кажется, что сама среда IDE имела проблемы с открытием файлов #include <...> - это, однако, можно было решить с помощью настроек → Редактор → Другие настройки → использовать кодировку при открытии файлов: по умолчанию
моя кодировка не была включена по умолчанию, и это как-то вызвало проблемы для открытия IDE include <...>
Однако он НЕ решил проблему с "не был объявлен в этой области"