Ошибка scanf в visual studio

Zloy_Tip

1 / 1 / 0

Регистрация: 01.09.2020

Сообщений: 2

1

01.09.2020, 17:10. Показов 7200. Ответов 23

Метки scanf (Все метки)


Студворк — интернет-сервис помощи студентам

Здравствуйте, Уважаемые!
Начал изучать язык Си и буквально в начале книги уже наткнулся на неприятность.
При запуске программы, компилятор ругается на функцию scanf. проверил не один раз, с точки зрения синтаксиса написано все верно.
Мой код:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
main() {
    int a, number;
 
    printf("Enter number int: ");
        scanf("%d", &a);
 
    if (number != 7) {
        printf("The variable number is not equal to 7");
    }
 
    printf("This is a C program n");
    printf("This is a C n program nn");
    printf("This nis na nC n program nn");
 
    return 0;
}

Компилятор пишет:
Ошибка C4996 ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Project2 C:UsersProfessionalDesktopProjectsProject2Project2Main.c 8

не пойму, что там не так…?
ниже на код не обращайте внимание, делаю не большие задачки все подряд просто в одном файле, смотрю как работает.



1



Annemesski

2439 / 1178 / 436

Регистрация: 08.11.2016

Сообщений: 3,262

01.09.2020, 17:16

2

Лучший ответ Сообщение было отмечено Zloy_Tip как решение

Решение

Zloy_Tip, закидоны VS-ки, не обращайте внимания или пропишите перед включением заголовков

C
1
#define _CRT_SECURE_NO_WARNINGS



3



Эксперт .NET

6318 / 3936 / 1578

Регистрация: 09.05.2015

Сообщений: 9,237

01.09.2020, 17:49

3

Написано же что функция scanf небезопасна, используйте вместо нее scanf_s, что тут непонятного?



0



3579 / 2249 / 406

Регистрация: 09.09.2017

Сообщений: 9,419

01.09.2020, 18:12

4

А scanf_s нестандартна, что еще хуже. Правильный способ уже указал Annemesski: приказать компилятору следовать стандарту.



1



Эксперт .NET

6318 / 3936 / 1578

Регистрация: 09.05.2015

Сообщений: 9,237

01.09.2020, 18:29

5

Цитата
Сообщение от COKPOWEHEU
Посмотреть сообщение

А scanf_s нестандартна, что еще хуже.

Бред не несите… https://en.cppreference.com/w/c/io/fscanf

Цитата
Сообщение от COKPOWEHEU
Посмотреть сообщение

Правильный способ уже указал Annemesski: приказать компилятору следовать стандарту.

Не делайте так как сказал Annemesski, не подвергайте себя и других опасности!!!



0



96 / 69 / 27

Регистрация: 26.08.2020

Сообщений: 361

01.09.2020, 18:37

6

Я тебе советую использовать компилятор GCC.У Microsoft всегда сове видение,причем они не соответствуют стандарту языка!



0



из племени тумба-юбма

2412 / 1741 / 405

Регистрация: 29.11.2015

Сообщений: 8,448

Записей в блоге: 14

01.09.2020, 18:40

7

Someone007, а как тогда быть, если используется другая IDE, отличная от VS? На функции scanf_s будет выдавать ошибку.



0



Эксперт .NET

6318 / 3936 / 1578

Регистрация: 09.05.2015

Сообщений: 9,237

01.09.2020, 18:46

8

Цитата
Сообщение от мама Стифлера
Посмотреть сообщение

а как тогда быть, если используется другая IDE, отличная от VS? На функции scanf_s будет выдавать ошибку.

С чего вдруг? scanf_s это стандартная С функция…



0



3579 / 2249 / 406

Регистрация: 09.09.2017

Сообщений: 9,419

01.09.2020, 23:15

9

Цитата
Сообщение от Someone007
Посмотреть сообщение

Не делайте так как сказал Annemesski, не подвергайте себя и других опасности!!!

Именно! Не пользуйтесь платформо-зависимыми костылями от Майкрософт! Нестандартные функции вроде scanf_s кроме них не поддерживает никто.
Если вам нужна безопасность, изучайте документацию на стандартные функции. В подавляющем большинстве случаев их достаточно.

Цитата
Сообщение от Someone007
Посмотреть сообщение

С чего вдруг? scanf_s это стандартная С функция…

Вот это вы успешно проглядели?

As with all bounds-checked functions, scanf_s , fscanf_s, and sscanf_s are only guaranteed to be available if __STDC_LIB_EXT1__ is defined by the implementation and if the user defines __STDC_WANT_LIB_EXT1__ to the integer constant 1 before including stdio.h.

Иначе говоря, функции *_s опциональны, а вовсе не стандартны.



0



Эксперт .NET

6318 / 3936 / 1578

Регистрация: 09.05.2015

Сообщений: 9,237

02.09.2020, 00:16

10

Цитата
Сообщение от COKPOWEHEU
Посмотреть сообщение

Иначе говоря, функции *_s опциональны, а вовсе не стандартны.

То что они опциональны, не отменяет того факта что они часть стандарта.



0



Вездепух

Эксперт CЭксперт С++

10932 / 5922 / 1621

Регистрация: 18.10.2014

Сообщений: 14,887

02.09.2020, 00:30

11

Цитата
Сообщение от Someone007
Посмотреть сообщение

То что они опциональны, не отменяет того факта что они часть стандарта.

Он просто вбрасывает эту чушь во все темы, где упоминаются эти функции. Лучше просто не обращать на это внимания.

Функции группы _s стандартны. Этот вопрос закрыт и не обсуждается. Не тратьте время на бессмысленный флуд.

Добавлено через 2 минуты

Цитата
Сообщение от scanf
Посмотреть сообщение

У Microsoft всегда сове видение,причем они не соответствуют стандарту языка!

Не надо здесь пороть «пионэрскую» чушь.



0



Модератор

Эксперт PythonЭксперт JavaЭксперт CЭксперт С++

11896 / 7268 / 1721

Регистрация: 25.07.2009

Сообщений: 13,311

02.09.2020, 04:56

12

TheCalligrapher, просто для расширения кругозора назовите хоть один компилятор не от Майкрософт, поддерживающий эти «стандартные» функции.

Цитата
Сообщение от Someone007
Посмотреть сообщение

Бред не несите

Цитата
Сообщение от TheCalligrapher
Посмотреть сообщение

Не надо здесь пороть «пионэрскую» чушь

И вообще, будьте оба немного сдержаннее. То, что не все разделяют вашу странную привязанность к M$ — не повод для хамства.



0



Вездепух

Эксперт CЭксперт С++

10932 / 5922 / 1621

Регистрация: 18.10.2014

Сообщений: 14,887

02.09.2020, 05:22

13

Цитата
Сообщение от easybudda
Посмотреть сообщение

просто для расширения кругозора назовите хоть один компилятор не от Майкрософт, поддерживающий эти «стандартные» функции

А, какое это имеет значение? Если бы подобные соображения имели вес, то комитет по стандартизации никогда бы не включил эти функции в стандарт языка. (Скажете, что это следствие «странной привязанности к M$С» самого комитета?). С другой стороны, несмотря на то, что, например, функция strdup присутствует практически везде, стандартной она не является. Так что «поддержка компиляторами» и «стандартность» — это совершенно ортогональные понятия.

К тому же предыдущий оратор пытается навязать нам некую более широкую «логику», согласно которой опциональные свойства языка или стандартной библиотеки являются «нестандартными» (???). В эту категорию, кстати, попадают и VLA, типы вроде uint32_t, uintptr_t, errno_t и многое другое. И эта загадочная ложная «логика» упорно насаждается вышеупомянутым оратором в каждой ветке, где упоминаются функции группы _s.

Я последнее время игнорирую эти вбросы, но время от времени их следует пресекать, особенно когда делаются попытки насаждения подобных домыслов среди начинающих. Если бы речь шла о портабельности кода, то замечания о функциях группы _s были бы вполне уместны. Но в контексте стандартности — пресекать нещадно.



0



3579 / 2249 / 406

Регистрация: 09.09.2017

Сообщений: 9,419

02.09.2020, 07:45

14

Цитата
Сообщение от TheCalligrapher
Посмотреть сообщение

Если бы подобные соображения имели вес, то комитет по стандартизации никогда бы не включил эти функции в стандарт языка.

Если бы подобные соображения имели место, эти функции были бы реализованы хоть кем-то кроме самих Майкрософтов. В реальности же никто не считает это нужным.

Цитата
Сообщение от TheCalligrapher
Посмотреть сообщение

В эту категорию, кстати, попадают и VLA, типы вроде uint32_t, uintptr_t, errno_t и многое другое

Про VLA сказать не могу. Просто не интересовался, но слышал, что ее использование чаще мешает, поэтому и смысла пропагандировать нет.
А вот int*_t объективно предпочтительнее еще более нестандартных BYTE, DWORD, u8 и т.д. Ну и если назовете компилятор, который этого не поддерживает — будет полезно. В отличие от того бреда что уже наговорили.

Цитата
Сообщение от TheCalligrapher
Посмотреть сообщение

Я последнее время игнорирую эти вбросы, но время от времени их следует пресекать, особенно когда делаются попытки насаждения подобных домыслов среди начинающих.

Пресекать надо бездумный формализм из серии «так сказано в стандарте, это ИстинаЪ, молитесь ей». Программирование- ремесло, а не религия. Поэтому каждое утверждение должно быть обосновано.
Так и тут: навязывать стандартизованные (если уж вашему формализму не по нраву «стандартные») типы вроде int16_t полезно. Потому что типы фиксированного размера нужны, а данный вариант, в отличие от других существующих, подкреплен стандартом Си и поддерживается большинством компиляторов. Иначе говоря не столь важно стандарт это или нет, на сегодня этот вариант лучше прочих.
И пресекать навязывание псевдо-безопасных функций вроде scanf_s тоже нужно. Потому что поддерживаются они одним-единственным компилятором (подумайте об этом: профессиональные разработчики даже не пытаются их реализовать). Кроме того, эти функции добавляют иллюзию безопасности, что, вообще-то, опаснее стандартного аналога, изначально постулируемой как требующего внимания. Реальные проблемы, к которым это приведет (помимо снижения безопасности, естественно): переход между архитектурами (в т.ч. на микроеонтроллеры и телефоны), проблемы с поиском помощи (желающий помочь банально не сможет воспроизвести ошибку).



1



из племени тумба-юбма

2412 / 1741 / 405

Регистрация: 29.11.2015

Сообщений: 8,448

Записей в блоге: 14

02.09.2020, 11:18

15

Ну тут пожалуй, я соглашусь с COKPOWEHEU. Если Майкрософт добились, чтоб их новые, «безопасные» функции для их же продукта были занесены в стандарт, еще не означает того, что данные функции можно называть стандартными. Проще сказать так, что для компилятора от Майкрософт, функции группы _s являются стандартными, для остальных компиляторов — нет. Но опять же говоря о безопасности, ведь знающий человек просто напишет код грамотно, тогда и никакого переполнения буфера не будет.

Вообще Майкрософт в силу своего влияния и убеждения могут довольно много, причем делают это они не считаясь не скем. Это касается и добровольно-принудительного переселения всех пользователей на Windows10, и производства новых процессоров, поддерживающих только новую OS. Компания не брезгует использовать любые доступные методы, порой даже весьма жесткие, лишь бы задавить своих конкурентов и продвигать свои продукты.

Не подумайте что я негативно отношусь к их продуктам, нет. Я негативно отношусь к их политике поведения на рынке.



1



easybudda

Модератор

Эксперт PythonЭксперт JavaЭксперт CЭксперт С++

11896 / 7268 / 1721

Регистрация: 25.07.2009

Сообщений: 13,311

02.09.2020, 13:55

16

Цитата
Сообщение от TheCalligrapher
Посмотреть сообщение

А, какое это имеет значение?

«Причём тут борщ, когда такие дела на кухне?!» (с)

Цитата
Сообщение от TheCalligrapher
Посмотреть сообщение

функция strdup присутствует практически везде, стандартной она не является

Ну она в POSIX входит. К тому же её нужность и полезность, как и многих других пришедших из BSD вещей, становится очевидной по мере использования.

Цитата
Сообщение от TheCalligrapher
Посмотреть сообщение

Скажете, что это следствие «странной привязанности к M$С» самого комитета?

Ну может мелкомягкие им просто денег занесли на «дальнейшее развитие»…

Цитата
Сообщение от TheCalligrapher
Посмотреть сообщение

VLA, типы вроде uint32_t, uintptr_t, errno_t

… входят в ANSI C 99, нормальную поддержку которого M$ сделать так и не удосужились. А в С 11 стали опцией скорее всего по той же причине, по которой были включены *_s функции.

Цитата
Сообщение от COKPOWEHEU
Посмотреть сообщение

Пресекать надо бездумный формализм из серии «так сказано в стандарте, это ИстинаЪ, молитесь ей». Программирование- ремесло, а не религия.

Цитата
Сообщение от COKPOWEHEU
Посмотреть сообщение

Про VLA сказать не могу. Просто не интересовался, но слышал, что ее использование чаще мешает, поэтому и смысла пропагандировать нет.

Я бы сказал, что использование VLA в чём-то сходно с использованием рекурсивных функций — если бездумно их пихать везде, где надо и не надо, обязательно нарвётесь на неприятности. А при разумном подходе может оказаться вполне удобным инструментом…

Zloy_Tip, короче, прийдётся выбирать между

Цитата
Сообщение от Annemesski
Посмотреть сообщение

закидоны VS-ки, не обращайте внимания или пропишите перед включением заголовков

C
1
#define _CRT_SECURE_NO_WARNINGS

и

Цитата
Сообщение от Someone007
Посмотреть сообщение

Написано же что функция scanf небезопасна, используйте вместо нее scanf_s, что тут непонятного?

По мне правильнее первое — как минимум, код будет переносимым и не привязанным к единственному компилятору. Если готовитесь стать адептом культа M$, смело выбирайте второе…



0



Вездепух

Эксперт CЭксперт С++

10932 / 5922 / 1621

Регистрация: 18.10.2014

Сообщений: 14,887

02.09.2020, 14:04

17

Цитата
Сообщение от easybudda
Посмотреть сообщение

… входят в ANSI C 99,

…. являются опциональными в С99 (кроме VLA), т.е, согласно «логике» вышеупомянутого оратора, нестандартными.

Цитата
Сообщение от easybudda
Посмотреть сообщение

нормальную поддержку которого M$ сделать так и не удосужились.

…нормальную поддержку которого MS реализовали уже давно.



0



3579 / 2249 / 406

Регистрация: 09.09.2017

Сообщений: 9,419

02.09.2020, 17:51

18

Цитата
Сообщение от easybudda
Посмотреть сообщение

VLA, типы вроде uint32_t, uintptr_t, errno_t
… входят в ANSI C 99, нормальную поддержку которого M$ сделать так и не удосужились. А в С 11 стали опцией скорее всего по той же причине, по которой были включены *_s функции.

Скорее, потому что строго 16-битного типа может быть не предусмотрено архитектурой. Или, скажем, строго 8-битного. Вроде бывают такие экзотические камни, хотя я их не видел.
При том что int_fast32_t и int_least32_t если не ошибаюсь, таки обязательны даже для них.

Цитата
Сообщение от TheCalligrapher
Посмотреть сообщение

…нормальную поддержку которого MS реализовали уже давно.

Но это не мешает им пихать свои DWORD и прочие рудименты во все щели.



0



Модератор

1794 / 892 / 164

Регистрация: 23.07.2018

Сообщений: 3,080

Записей в блоге: 3

02.09.2020, 18:33

19

Zloy_Tip, насколько я понимаю microsoft, это предупреждение компилятора, а не ошибка
https://docs.microsoft.com/en-… el-3-c4996

В учебных упражнениях проще всего не обращать внимание на это сообщение.
Или следовать совету поставщика компилятора:

Цитата
Сообщение от microsoft

Microsoft deprecated some CRT and C++ Standard Library functions and globals because more secure versions are available. Most of the deprecated functions allow unchecked read or write access to buffers. Their misuse can lead to serious security issues. The compiler issues a deprecation warning for these functions, and suggests the preferred function.

To fix this issue, we recommend you use the function or variable safe-version instead. Sometimes you can’t, for portability or backwards compatibility reasons. Carefully verify it’s not possible for a buffer overwrite or overread to occur in your code. Then, you can turn off the warning.

To turn off deprecation warnings for these functions in the CRT, define _CRT_SECURE_NO_WARNINGS.

Добавлено через 13 минут

Цитата
Сообщение от COKPOWEHEU
Посмотреть сообщение

пресекать навязывание псевдо-безопасных функций вроде scanf_s тоже нужно. Потому что поддерживаются они одним-единственным компилятором (подумайте об этом: профессиональные разработчики даже не пытаются их реализовать)

Каких ещё профессиональных разработчиков Вы знаете, кроме Microsoft ?
https://docs.oracle.com/cd/E88… -s-3c.html



0



Вездепух

Эксперт CЭксперт С++

10932 / 5922 / 1621

Регистрация: 18.10.2014

Сообщений: 14,887

02.09.2020, 18:35

20

Цитата
Сообщение от politoto
Посмотреть сообщение

Zloy_Tip, насколько я понимаю microsoft, это предупреждение компилятора, а не ошибка

Тема уже 100500 раз разбиралась здесь. Если в установках проекта включены «SDL checks», то это — именно ошибка, а не предупреждение компилятора. А «SDL checks» в нынешних версиях MSVC включены по умолчанию. Поэтому большинство новичков натыкаются именно на Ошибка C4996, как и процитировано у ТС.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

02.09.2020, 18:35

Помогаю со студенческими работами здесь

Линкер ругается на функцию
// laba7evteev.cpp: определяет можно ли из слов первой строки составить вторую
//

#include…

Ругается на функцию в функции
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;time.h&gt;
#include &lt;math.h&gt;
#define A 10…

Компилятор ругается на функцию strncat
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

long p,x,i,j,k,d,l;
char t,s;…

В main объявить переменную, потом в другой функции ее инициализировать, вызывая функцию scanf
Помогите разобраться с задачей. Нужно в main объявить переменную, потом в другой функции ее…

Антивирус ругается на функцию отправки почты
Антивирус — Kaspersky Internet Security 2012.
ОС — Windows 7 x64.
IDE -…

Почему компилятор ругается на математическую функцию?
#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cmath&gt;

using namespace…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

20

Здравствуйте. При попытке компиляции проекта возникает следующая ошибка:

Ошибка C4996 ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
код программы:

#define _CRT_SECURE_NO_WARNINGS
#include "stdafx.h"
#include "stdio.h"

int main()
{
    int a;
    scanf("%d", &a);
    return 0;
}

P.S: при использовании scanf_s компиляция проходит успешно, почему не работает с scanf? Среда разработки visual studio

Harry's user avatar

Harry

215k15 золотых знаков117 серебряных знаков228 бронзовых знаков

задан 9 дек 2017 в 20:09

Вячеслав161's user avatar

Просто функция считается небезопасной, позволяющей в принципе привести к переполнению буфера (и сопутствующим неприятностям, вплоть до взлома программы хакерами :))

Поэтому вас предупреждают об использовании потенциально небезопасной функции.

Используя

#define _CRT_SECURE_NO_WARNINGS

вы говорите — да, я знаю и принимаю на себя всю ответственность.

ответ дан 9 дек 2017 в 20:16

Harry's user avatar

HarryHarry

215k15 золотых знаков117 серебряных знаков228 бронзовых знаков

7

Это диагностическое сообщение является «ошибкой» только если у вас в установках проекта включены SDL Checks. Если выключить SDL Checks, то «ошибка» превратится в «предупреждение».

Чтобы избавиться от него полностью, определите макро _CRT_SECURE_NO_WARNINGS перед включением стандартных заголовочных файлов. Лучше всего сделать это глобально, в настройках проекта.

ответ дан 9 дек 2017 в 20:31

AnT stands with Russia's user avatar

2 Августа 2017

Время чтения: 5 минут

Visual Studio unsafe error скриншот

Компилятор в Visual Studio сильно отличается от привычных большинству программистов GCC или CLANG, из-за чего при написании кода на C или C++ очень часто возникают неожиданные проблемы в виде ошибки использования стандартных функций, например, scanf, fopen, sscanf и тому подобным. Студия предлагает заменять функции на безопасные (повезёт, если нужно просто добавить _s к функции с ошибкой, но нередко в этих функциях идёт иной набор аргументов, нежели в обычной программе). Если вы не готовы с этим мириться, то этот пост для вас!

Давайте для начала создадим обычный консольный проект в Visual Studio и напишем простенькую программу, которая запрашивает ввод двух чисел, вводит их и затем выводит на экран.

#include "stdafx.h"
#include <stdio.h>

int main() {
	int a, b;

	printf("Enter a: ");
	scanf("%d", &a);

	printf("Enter b: ");
	scanf("%d", &b);

	printf("a: %d, b: %dn", a, b);
	return 0;
}

Попробовав выполнить сборку проекта, обнаружим те самые ошибки.

Чтобы Visual Studio не тратила ваши нервы, сделаем следующее:

1. Выберем пункт «Проект» в верхнем меню

2. В открывшемся списке щёлкнем по «Свойства название_проекта»

Программа, вводящая два числа и выводящая их

Программа, вводящая два числа и выводящая их

Ошибка компиляции из-за небезопасности функций

Ошибка компиляции из-за небезопасности функций

Проект -> Свойства {навание проекта}

Проект — Свойства {навание проекта}

3. В появившемся окне выберем Свойства конфигурации, C/C++, Препроцессор

4. В строке Определения препроцессора допишем в самый конец строку ;_CRT_SECURE_NO_WARNINGS

5. Нажмём ОК

Свойства конфигурации

Свойства конфигурации

Определения препроцессора

Определения препроцессора

OK

Нажимаем OK

6. Попробуем заново выполнить сборку проекта:

Успешная сборка проекта

Успешная сборка проекта

Ошибки исчезли, сборка прошла успешно и программа прекрасно работает! Теперь можно писать код как обычно, не переживая о необычном поведении Visual Studio!

Фото Перминова Андрея, автора этой статьи

Программист, сооснователь programforyou.ru, в постоянном поиске новых задач и алгоритмов

Языки программирования: Python, C, C++, Pascal, C#, Javascript

Выпускник МГУ им. М.В. Ломоносова

При использовании scanf выдаёт ошибку:

char str;
printf("qwe");
scanf("%s", &str);
return 0;

Ошибка	2	error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.	e:decanatconsoleapplication15consoleapplication15consoleapplication15.cpp	11	1	ConsoleApplication15

После добавления
#define _CRT_SECURE_NO_WARNINGS
ничего не меняется.
А при использовании scanf_s, программа запускается но после ввода значения выкидывает такую ошибку:
dadd1062d568496b8a2b5a511177299f.png

Every scanf gets an error of C4996, use scanf_s instead.

I read every similar post about this issue and I know I can solve this issue with #pragma warning(disable : 4996), but what I want to ask is I was using vstudio before and it never happened to me before. I can compile without problem in CodeBlocks or DevC++ but why exactly is this happening and if I disable warnings, would that affect my code in any way?

  • c
  • visual-studio
  • compiler-errors
  • deprecation-warning

melpomene's user avatar

melpomene

83.7k8 gold badges84 silver badges147 bronze badges

asked Sep 2, 2018 at 9:53

Ischys's user avatar

10

  • Does it not tell you what is deprecated?

    Sep 2, 2018 at 9:55

  • Your probably not using the same compiler. CodeBlocks usually defaults to GCC. Visual Studio will default to MSVC. Never use Dev C++ for anything.

    Sep 2, 2018 at 9:58

  • Doesn’t matter what I use it for,every scanf gets an error of C4996, use scanf_s instead.

    Sep 2, 2018 at 10:00

  • @Ischys That’s kind of the most important part of your question. I edited it in.

    Sep 2, 2018 at 10:07

  • MSVC has a set of «safe» functions like scanf_s and its just forcing you to use their non standard functions instead of the standard ones

    Sep 2, 2018 at 10:08

Load 7 more related questions

Show fewer related questions

Понравилась статья? Поделить с друзьями:
  • Ошибка sc556 ricoh sp 210su
  • Ошибка sc556 ricoh sp 202
  • Ошибка sc542 принтер ricoh как исправить
  • Ошибка sc542 ricoh sp325 как сбросить
  • Ошибка sc542 ricoh sp220 как сбросить