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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 53, средняя оценка - 4.85
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
#1

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

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

Здравствуйте, подскажите что означает данное предупреждение и как его убрать
Предупреждение 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2012, 00:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Предупреждение warning C4996: 'itoa' (C++):

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

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

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

Предупреждение C4996. чито это? - C++
Предупреждение 1 warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation,...

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

Itoa - C++
Привет, столкнулся с проблемой что компилятор видит ошибку в itoa and strlen, подключал все возможные библиотеки - не помогло, знает кто...

12
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
10.01.2012, 00:52 #2
Цитата Сообщение от fenix117 Посмотреть сообщение
что означает данное предупреждение
плоховато с английским? Устаревшая, юзай _itoa вместо нее.
Цитата Сообщение от fenix117 Посмотреть сообщение
и как его убрать
В тексте предупреждения сказано...
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
10.01.2012, 00:54 #3
fenix117, ну компилятор советует вам пользоваться _itoa вместо itoa так как он там что-то в POSIX'овском стандарте вычитал за вас и теперь вот вам решил порекомендовать

Добавлено через 51 секунду
Ну да вообще предупреждения для того и предупреждения чтобы Вы их могли прочитать и всё, предупреждения служат чтобы обратить ваше внимание, а не чтобы Вы обязательно исправили это.
1
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 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
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
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
alex_x_x
бжни
2449 / 1654 / 84
Регистрация: 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
Arkanit
0 / 0 / 0
Регистрация: 17.04.2015
Сообщений: 35
Завершенные тесты: 1
19.05.2016, 12:10 #10
Была та же ошибка

заменил itoa на _itoa_s - проблема решена.
0
Mirmik
168 / 140 / 34
Регистрация: 27.02.2014
Сообщений: 742
19.05.2016, 12:26 #11
В чем функциональная разница между itoa и _itoa?
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,534
Завершенные тесты: 1
19.05.2016, 14:35 #12
Цитата Сообщение от Mirmik Посмотреть сообщение
В чем функциональная разница между itoa и _itoa?
Ни в чем. Разница во внутренней реализации этих функций. В первой может быть вообще что угодно, а во второй что угодно от майкрософт.
0
Mr.X
Эксперт С++
3050 / 1695 / 265
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2016, 18:44
Привет! Вот еще темы с ответами:

itoa(); - C++
вопрос!!! вводится массив элементов типа unsigned char двоичным числом, т.е только 0 и 1... как перевести мое вводимое число в...

itoa - C++
Почему Itoa (ltoa, ultoa) переводит неправильно при n=299999? #include &quot;stdio.h&quot; #include &quot;string.h&quot; #include &quot;stdlib.h&quot; #include...

Itoa варианты - C++
НА этапе компиляции ошибка в строке itoa() Выдает что то типа: Ошибка 1 error C4996: 'itoa': The POSIX name for this item is...

Itoa И String - C++
Вопрос как подружить String строку с itoa а вводить доп переменные для хранение не хочется слышал что есть метод класса которую...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru