Форум программистов, компьютерный форум CyberForum.ru

Что за ошибка с использованием cstdio? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.69
zombiethegame
 Аватар для zombiethegame
1 / 1 / 0
Регистрация: 08.08.2011
Сообщений: 23
18.01.2012, 01:00     Что за ошибка с использованием cstdio? #1
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cstdio>
#include <clocale>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
    double fahr,cels;
    printf("\nВведите тепмературу по Фаренгейту\n");
    scanf( "%lf", &fahr);
    cels = 5.0 / 9 ( fahr - 32 );
    printf("По Фаренгейту: %6.2lf, По Цельсию: %6.2lf\n, fahr, cels");
    system("pause");
    return 0;
}
И выдает такую ошибку:
fahrengeit.cpp(9) : warning 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.
c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306): см. объявление 'scanf'

Использую Visual C++ 2008
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
18.01.2012, 01:04     Что за ошибка с использованием cstdio? #2
Цитата Сообщение от zombiethegame Посмотреть сообщение
И выдает такую ошибку:
Цитата Сообщение от zombiethegame Посмотреть сообщение
warning
На каком языке warning - это ошибка?
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
18.01.2012, 01:05     Что за ошибка с использованием cstdio? #3
проблемы с английским? Компилятор считает scanf небезопасной функцией. Даже интересно, почему он так думает... Ссылки на этот самый "online help" там нет?
Mr.kto
Сообщений: n/a
18.01.2012, 01:06     Что за ошибка с использованием cstdio? #4
zombiethegame, напиши через cout, cin и не будет тебе никаких ошибок!
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
18.01.2012, 01:06     Что за ошибка с использованием cstdio? #5
ето же не ошибка.ето предупреждение о том что данная функция не желательна к использованию так как она не достаточно безопасна.и советуют использовать scanf_s
ValeryS
Модератор
6374 / 4840 / 442
Регистрация: 14.02.2011
Сообщений: 16,043
18.01.2012, 01:09     Что за ошибка с использованием cstdio? #6
Цитата Сообщение от NoMasters Посмотреть сообщение
Компилятор считает scanf небезопасной функцией. Даже интересно, почему он так думает...
потому что проверки нет вводимых значений
Цитата Сообщение от zombiethegame Посмотреть сообщение
cels = 5.0 / 9 ( fahr - 32 );
А вот на это ничего не сказал????
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
18.01.2012, 01:10     Что за ошибка с использованием cstdio? #7
Цитата Сообщение от NoMasters Посмотреть сообщение
проблемы с английским? Компилятор считает scanf небезопасной функцией. Даже интересно, почему он так думает... Ссылки на этот самый "online help" там нет?
потому что она не является безопасной(может вызвать переполнение буфера)
но для учебных программ это не имеет значения
Mr.kto
Сообщений: n/a
18.01.2012, 01:11     Что за ошибка с использованием cstdio? #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");    
    double fahr,cels;
        printf("\nВведите тепмературу по Фаренгейту\n");
        scanf( "%lf", &fahr);
        cels = 5.0 / 9*( fahr - 32 );
        printf("По Фаренгейту: %6.2lf, По Цельсию: %6.2lf\n, fahr, cels");
        system("pause");
        return 0;
}
вот так как то
zombiethegame
 Аватар для zombiethegame
1 / 1 / 0
Регистрация: 08.08.2011
Сообщений: 23
18.01.2012, 01:19  [ТС]     Что за ошибка с использованием cstdio? #9
Цитата Сообщение от Mr.kto Посмотреть сообщение
zombiethegame, напиши через cout, cin и не будет тебе никаких ошибок!
Через cout и cin я умею. В книге написано использовать С библиотеку(в половине примеров). Так что нужно понять как она работает))

Хоть это и предупреждение, хотелось бы что бы оно больше не высвечивалось, можно это как то сделать?
А то не люблю warning'и)

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
потому что проверки нет вводимых значений

А вот на это ничего не сказал????
Сказал, но это я заметил и исправил)
Mr.kto
Сообщений: n/a
18.01.2012, 01:25     Что за ошибка с использованием cstdio? #10
Цитата Сообщение от zombiethegame Посмотреть сообщение
можно это как то сделать?
добавь библиотеки
#include "stdafx.h"
#include <stdio.h> - замена #include <сstdio>
#include <iostream>
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
18.01.2012, 01:34     Что за ошибка с использованием cstdio? #11
Цитата Сообщение от Mr.kto Посмотреть сообщение
#include "stdafx.h"
А не могли бы вы сказать, для чего?

Не по теме:

Вопрос с подвохом.

Artishok
ЧакЭ одобряЭ
 Аватар для Artishok
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
18.01.2012, 01:37     Что за ошибка с использованием cstdio? #12
Цитата Сообщение от zombiethegame Посмотреть сообщение
А то не люблю warning'и)
да просто отключить можно если мешает
C++
1
#pragma warning(disable:4996)
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
18.01.2012, 05:58     Что за ошибка с использованием cstdio? #13
добавь библиотеки
#include "stdafx.h"
#include <stdio.h> - замена #include <сstdio>
#include <iostream>
Mr.kto, зачем?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
18.01.2012, 09:53     Что за ошибка с использованием cstdio? #14
Цитата Сообщение от retmas Посмотреть сообщение
потому что она не является безопасной(может вызвать переполнение буфера)
но для учебных программ это не имеет значения
в одном компиляторе она является небезопасной
небезопасная функция в C - gets(), её заменяют на fgets()
(в C1X сделали gets_s() )
Mr.kto
Сообщений: n/a
18.01.2012, 12:59     Что за ошибка с использованием cstdio? #15
Цитата Сообщение от silent_1991 Посмотреть сообщение
А не могли бы вы сказать, для чего?
stdafx.h - инклуд-файл, который служит для генерации файла предкомпилированных заголовков; в него включено большинство стандартных и используемых в каждом приложении включаемых файлов. Сделано это для того, чтобы ускорить компиляцию проекта.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
18.01.2012, 13:04     Что за ошибка с использованием cstdio? #16
Цитата Сообщение от zombiethegame Посмотреть сообщение
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.
Это причуды Visual Studio.
C++
1
2
3
#define _CRT_SECURE_NO_WARNINGS
 
#include <cstdio>
Mr.kto
Сообщений: n/a
18.01.2012, 13:06     Что за ошибка с использованием cstdio? #17
Цитата Сообщение от fasked Посмотреть сообщение
Это причуды Visual Studio.
та да +1)
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
18.01.2012, 13:28     Что за ошибка с использованием cstdio? #18

Не по теме:

Цитата Сообщение от Mr.kto Посмотреть сообщение
та да +1)
stdafx.h - тоже причуды Visual Studio, но про это вы "та да" не сказали



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

Не по теме:

И при этом необходимость наличия/отсутствия этого инклуда зависит от настроек проекта. Так что прежде, чем советовать то, что может повлечь уже error'ы, а не warning'и, стоит уточнять, как был создан проект.

Mr.kto
Сообщений: n/a
18.01.2012, 13:34     Что за ошибка с использованием cstdio? #19
Цитата Сообщение от silent_1991 Посмотреть сообщение
stdafx.h - тоже причуды Visual Studio, но про это вы "та да" не сказали
та да !!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2014, 23:46     Что за ошибка с использованием cstdio?
Еще ссылки по теме:

cstdio vs fstream C++
из cstdio в fstream C++
C++ Из fstream в cstdio

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

Или воспользуйтесь поиском по форуму:
Справлюсь
 Аватар для Справлюсь
23 / 23 / 5
Регистрация: 24.07.2014
Сообщений: 203
13.09.2014, 23:46     Что за ошибка с использованием cstdio? #20
а у меня на эти функции вообще эрроры высвечивает:
исходный код.cpp(9): 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.
что делать?
Yandex
Объявления
13.09.2014, 23:46     Что за ошибка с использованием cstdio?
Ответ Создать тему
Опции темы

Текущее время: 18:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru