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 <...>

Однако он НЕ решил проблему с "не был объявлен в этой области"