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

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

Войти
Регистрация
Восстановить пароль
 
takeneo
3 / 3 / 3
Регистрация: 16.08.2013
Сообщений: 22
#1

Устраните деприкацию - C++

20.11.2013, 04:48. Просмотров 348. Ответов 2
Метки нет (Все метки)

Нашёл в учебнике С.Девиса функцию char* int2month(int nMonth) сам дописал к ней функцию main.
Программа выводит имя месяца в ответ на номер.
Как устранить предупреждения компилятора g++ ? Или забить на них?
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
28
29
#include <iostream>
char* int2month(int nMonth)
{
    if (nMonth<1 || nMonth > 12)
    {
        return "invalid";
    }
    char* pszMonths[] = {"Ошибка",
                          "Январь",
                          "Февраль",
                          "Март",
                          "Апрель",
                          "Май",
                          "Июнь",
                          "Июль",
                          "Август",
                          "Сентябрь",
                          "Ноябрь",
                          "Декабрь"};
    return pszMonths[nMonth];
}
int main()
{
    int m;
    std::cout<<"введите номер месяца\n";
    std::cin>>m;
    std::cout<<int2month(m);
    return 0;
}
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
g++ -Wall -o "arraymonth" "arraymonth.cxx" (в каталоге: /home/username/cxx)
arraymonth.cxx: В функции «char* int2month(int)»:
arraymonth.cxx:6:10: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
arraymonth.cxx:19:25: предупреждение: deprecated conversion from string constant to «char*» [-Wwrite-strings]
Сборка прошла успешно.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2013, 04:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Устраните деприкацию (C++):

устраните неполадки Microsoft Visual c++ runtime library - C++
CodeBlocks&quot; и C++ Builder 6 не работают. Выводит : this application has requested the runtime to terminate it in unusual way.please...

устраните ошибку - Turbo Pascal
programe Zavdannya_4 Var x,b,k:real; function tg(w:real):real; begin tg:=sin(w)/cos(w); end; function...

выявите и устраните ошибку - Pascal ABC
Program lab6_7; uses CRT; var x,y,z:real; begin readln (x); if (x &gt;-0,5) then (y:= 1+x/sqrt(x*(sin(x)/cos(x))) else...

Устраните критические моменты в программе - Pascal
Табулирование функции. помогите исключить критические случаи! Var x,y,xmin,xmax,dx:real; Begin writeln('ЙНННННННЛННННННН»'); ...

Устраните пожалуста кто может ощьбки из DSDT.aml фаила - Процессоры
Пожалуста кто может я вьдаду фаил:(

Устраните ошибку в коде, который перемещает диаграмму из Excel в Power Point - VBA
Вот код макроса, который должен перемещать диаграмму из экселя в павер_поинт. (запускается из екселя) ActiveChart.ChartArea.Select...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
katsidelin
60 / 21 / 2
Регистрация: 15.11.2013
Сообщений: 112
Записей в блоге: 3
20.11.2013, 05:55 #2
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
28
29
30
#include <string>
#include <iostream>
std::string int2month(int nMonth)
{
    if (nMonth<1 || nMonth > 12)
    {
        return "invalid";
    }
    std::string pszMonths[] = {"Ошибка",
                          "Январь",
                          "Февраль",
                          "Март",
                          "Апрель",
                          "Май",
                          "Июнь",
                          "Июль",
                          "Август",
                          "Сентябрь",
                          "Ноябрь",
                          "Декабрь"};
    return pszMonths[nMonth];
}
int main()
{
    int m;
    std::cout<<"введите номер месяца\n";
    std::cin>>m;
    std::cout<<int2month(m);
    return 0;
}
Класс string - строковый класс. Его можно преобразовать в массив символов с помощью функции c_str() ( pszMonths.c_str() ), как массив символов преобразовать обратно, я пока не знаю.
1
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
20.11.2013, 06:17 #3
Цитата Сообщение от takeneo Посмотреть сообщение
C++
1
char* pszMonths[] = { /* ... */ };
Строковые литералы неизменяемы:
C++
1
char const* pszMonths[] = { /* ... */ };
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2013, 06:17
Привет! Вот еще темы с ответами:

"Устраните препятствие" (hp 3525) - Принтеры, МФУ
Всем здравствуйте! Вас беспокоит счастливый обладатель принтера фирмы HP модели 3525. К сожалению, с ним случилась беда, поэтому прошу...


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

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

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