Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/89: Рейтинг темы: голосов - 89, средняя оценка - 4.80
8 / 8 / 2
Регистрация: 16.03.2011
Сообщений: 257
1

Предупреждение warning C4996: 'itoa'

10.01.2012, 00:39. Показов 17073. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, подскажите что означает данное предупреждение и как его убрать
Предупреждение 1 warning C4996: 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _itoa. See online help for details.
Таких предупреждений у меня 9)
Кусочек кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
string LongLong_to_String (const LongLong &T)
{
    string A;
    int ostatok;
    char simvol[5];
    if ((T.first == 0) && (T.second == 0))
    {
        return "0";
    }
    for (int f = T.second; f != 0; f /= 10)
    {
        ostatok = f % 10;
        itoa (ostatok,simvol,10);
        A.push_back (simvol[0]);
    }
.....
....
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2012, 00:39
Ответы с готовыми решениями:

Не работает прога. error C4996: 'itoa'
Вот сам код программы #include "stdafx.h" #include <string.h> #include <iostream> #include...

Error C4996: 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _itoa
В классе написал такой метод, чтобы перевести строку из шестнадцатеричной системы счисления в...

Warning C4101 и warning C4996
Здравствуйте, пишу программу "Домашняя видеотека", в которой необходимо реализовать запить...

Warning C4996: 'strcpy': This function or variable may be unsafe
написал программу все считает , но выводит ошибку окно как сделать отладку программы? ...

12
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
10.01.2012, 00:52 2
Цитата Сообщение от fenix117 Посмотреть сообщение
что означает данное предупреждение
плоховато с английским? Устаревшая, юзай _itoa вместо нее.
Цитата Сообщение от fenix117 Посмотреть сообщение
и как его убрать
В тексте предупреждения сказано...
0
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
10.01.2012, 00:54 3
fenix117, ну компилятор советует вам пользоваться _itoa вместо itoa так как он там что-то в POSIX'овском стандарте вычитал за вас и теперь вот вам решил порекомендовать

Добавлено через 51 секунду
Ну да вообще предупреждения для того и предупреждения чтобы Вы их могли прочитать и всё, предупреждения служат чтобы обратить ваше внимание, а не чтобы Вы обязательно исправили это.
1
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
10.01.2012, 00:59 4
это нестандартная функция (ровно как и _itoa)
используйте sprintf(simvol, "%d", ostatok)
конечно доступные системы исчисления только 8, 10, 16ные
1
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 7
26.05.2013, 00:10 5
Цитата Сообщение от alex_x_x Посмотреть сообщение
это нестандартная функция (ровно как и _itoa)
используйте sprintf(simvol, "%d", ostatok)
конечно доступные системы исчисления только 8, 10, 16ные
у меня не сработало ни _itoa, ни sprintf...на _itoa выдавала длинный список ошибок, а с спринтф работа не задалась - подчеркивало.

как еще можно?
может быть кто еще поможет?
мне нужно из трех переменных (char,int,int) сделать одну типа string.
Хотела перевести инт в чар и склеить, но перевести не получилось О_О
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
26.05.2013, 00:15 6
Тэлия, примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <sstream>
#include <string>
 
// ...
 
int main() {
   char ch = 'c';
   int one = 1;
   int two = 2;
 
   std::ostringstream oss;
   oss << ch << one << two;
   std::string string = oss.str();
 
   std::cout << string << std::endl;
}
2
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 7
26.05.2013, 18:03 7
Цитата Сообщение от gray_fox Посмотреть сообщение
Тэлия, примерно так:
C++
1
2
3
4
5
6
   std::ostringstream oss;
   oss << ch << one << two;
   std::string string = oss.str();
 
 
}
Спасибо большое, работает...
а можете объяснить, что оно делает?
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
26.05.2013, 20:20 8
православный вариант с бустом мне больше нравится:

C++
1
std::string str = boost::format ("%d") % 10;
1
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 7
27.05.2013, 00:37 9
alex_x_x, а он что делает??
1
2 / 2 / 0
Регистрация: 17.04.2015
Сообщений: 37
19.05.2016, 12:10 10
Была та же ошибка

заменил itoa на _itoa_s - проблема решена.
2
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
19.05.2016, 12:26 11
В чем функциональная разница между itoa и _itoa?
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
19.05.2016, 14:35 12
Цитата Сообщение от Mirmik Посмотреть сообщение
В чем функциональная разница между itoa и _itoa?
Ни в чем. Разница во внутренней реализации этих функций. В первой может быть вообще что угодно, а во второй что угодно от майкрософт.
0
Эксперт С++
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
19.05.2016, 18:44 13
Не, самый православный вот такой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <string>
///////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    char    c{};
    int     i{};
    int     k{};
 
    std::cout   <<  "char\t: ";
    std::cin    >>  c;
 
    std::cout   <<  "int\t: ";
    std::cin    >>  i;
 
    std::cout   <<  "int\t: ";
    std::cin    >>  k;
 
    T_str   s   =       c
                    +   std::to_string(i)
                    +   std::to_string(k);
 
    std::cout   <<  s
                <<  std::endl;
}
0
19.05.2016, 18:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2016, 18:44
Помогаю со студенческими работами здесь

Warning C4996: 'strcpy': This function or variable may be unsafe
Как избавиться от ошибки (warning C4996: 'strcpy': This function or variable may be unsafe), не...

Предупреждение C4996. чито это?
Предупреждение 1 warning C4996: 'scanf': This function or variable may be unsafe. Consider using...

Предупреждение 2 warning LNK4075: не учитывается "/INCREMENTAL"
Предупреждение 1 warning C4996: 'swprintf': swprintf has been changed to conform with the ISO C...

Warning C4996: 'scanf': This function or variable may be unsafe
#include&lt;stdio.h&gt; #include&lt;math.h&gt; void main() { int a,b,c ; printf(&quot;Enter a&quot;); scanf(&quot;%d&quot; ,...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru