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

Замена If на Switch вызвала ошибки - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
DramaQueen
 Аватар для DramaQueen
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 30
07.05.2014, 01:24     Замена If на Switch вызвала ошибки #1
Создаю структуру, подключаю к ней txt файл, использовала if, все работало, решила поменять на switch начал ругаться
Замена If на Switch вызвала ошибки
Не понимаю, что именно нужно исправить
Замена If на Switch вызвала ошибки
Добрые, умные люди, помогите, пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2014, 01:24     Замена If на Switch вызвала ошибки
Посмотрите здесь:

C++ Switch
C++ switch
C++ Оптимальная конструкция switch-case-while / while-switch-case
C++ замена switch на if.
C++ Ваша программа вызвала нарушение доступа(ошибка сегментации)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
07.05.2014, 01:25     Замена If на Switch вызвала ошибки #2
Цитата Сообщение от DramaQueen Посмотреть сообщение
Создаю структуру, подключаю к ней txt файл
чего?
Цитата Сообщение от DramaQueen Посмотреть сообщение
использовала if, все работало, решила поменять на switch начал ругаться
где код?
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6169 / 2898 / 282
Регистрация: 04.12.2011
Сообщений: 7,705
Записей в блоге: 3
07.05.2014, 01:26     Замена If на Switch вызвала ошибки #3
DramaQueen, положите код прямо в пост и добрые люди сразу помогут.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
07.05.2014, 01:28     Замена If на Switch вызвала ошибки #4
Цитата Сообщение от IGPIGP Посмотреть сообщение
положите код прямо в пост и добрые люди сразу помогут.
только тегами кода его выделите, а то добрых не останется
DramaQueen
 Аватар для DramaQueen
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 30
07.05.2014, 01:40  [ТС]     Замена If на Switch вызвала ошибки #5
Объяснять я не мастак, но иначе не могу, не хватает знаний)
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
31
32
33
34
35
36
37
38
39
40
41
struct Prokat 
{
    int vel;
    int vrem;
    char cost[30];
    char zalog[30];
};
int main(void)
{
    setlocale(0, "rus");
    printf("Здравствуйте, Вас приветствует фирма проката велосипедов STELS! \n");
    struct Prokat p;
    printf("Наш ассортимент проката: \n");
    ifstream input_file("Ассортимент.txt");
    char vzros[1000], podrost[100], det[100];
    input_file.getline(vzros, sizeof(vzros));
    input_file.getline(podrost, sizeof(podrost));
    input_file.getline(det, sizeof(det));
    cout << vzros << endl;
    cout << podrost << endl;
    cout << det << endl;
    printf("\Пожалуйста, введите номер выбранного Вами велосипеда: \n");
    scanf_s("%i", &p.vel);
    int vel;
    switch (vel)
        {
    case '1':
                printf("Наши тарифы: \n");
                ifstream input_file("ТарифыВзрослый.txt");
                char chas1[1000], den1[100], info1[300];
                input_file.getline(chas1, sizeof(chas1));
                input_file.getline(den1, sizeof(den1));
                input_file.getline(info1, sizeof(info1));
                cout << chas1 << endl;
                cout << den1 << endl;
                cout << info1 << endl;
                printf("\nПожалуйста, введите номер выбранного Вами тарифа: \n");
                scanf_s("%i", &p.vrem);
                int vrem;
                switch (vrem)
                {
Добавлено через 11 минут
Изначально было так:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
struct Prokat 
{
    int vel;
    int vrem;
    char cost[30];
    char zalog[30];
};
int main(void)
{
    setlocale(0, "rus");
    printf("Здравствуйте, Вас приветствует фирма проката велосипедов STELS! \n");
    struct Prokat p;
    printf("Ассортимент проката: \n");
    ifstream input_file("Ассортимент.txt");
    char vzros[1000], podrost[100], det[100];
    input_file.getline(vzros, sizeof(vzros));
    input_file.getline(podrost, sizeof(podrost));
    input_file.getline(det, sizeof(det));
    cout << vzros << endl;
    cout << podrost << endl;
    cout << det << endl;
    printf("\Пожалуйста, введите номер выбранного Вами велосипеда: \n");
    scanf_s("%i", &p.vel);
    {
        int vel;
        if (vel = 1)
            printf("Наши тарифы: \n");
        ifstream input_file("ТарифыВзрослый.txt");
        char chas1[1000], den1[100], info1[300];
        input_file.getline(chas1, sizeof(chas1));
        input_file.getline(den1, sizeof(den1));
        input_file.getline(info1, sizeof(info1));
        cout << chas1 << endl;
        cout << den1 << endl;
        cout << info1 << endl;
        printf("\nПожалуйста, введите номер выбранного Вами тарифа: \n");
        scanf_s("%i", &p.vrem);
        { 
            int vrem;
            if (vrem = 1)
            printf("Стоимость: ");
        ifstream input_file("СтоимостьВзЧ.txt");
        char stoim1[1000];
        input_file.getline(stoim1, sizeof(stoim1));
        cout << stoim1 << endl; }
        
 
    }
Но я поняла,что запутаюсь в if`ах, поменяла на switch.. ну а дальше беда
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6169 / 2898 / 282
Регистрация: 04.12.2011
Сообщений: 7,705
Записей в блоге: 3
07.05.2014, 01:45     Замена If на Switch вызвала ошибки #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <windows.h>
using namespace std;
 
int main (){
SetConsoleCP (1251); SetConsoleOutputCP (1251);
int vel;//тут мусор
cout<<"1 или 2?"<<endl;
cin>>vel;//что-то присвоить надо
switch(vel){
case 1: cout<<"1"<<endl; break;
case 2: cout<<"2"<<endl; break;
default : cout<<"Не 1 и ни 2..."<<endl;
}
system("pause");
return 0;
}

Не по теме:

DramaQueen, сочетание красного и зелёного, - классика. Это я задний фон имею ввиду. А то Croessmah, тоже зелёный) Но он и так не обидится.

Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
07.05.2014, 01:55     Замена If на Switch вызвала ошибки #7

Не по теме:

Цитата Сообщение от IGPIGP Посмотреть сообщение
А то Croessmah, тоже зелёный) Но он и так не обидится.
у меня глаза красные


и сразу тут
C++
1
if (vel = 1)
присваивание. Оператор сравнения ==
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6169 / 2898 / 282
Регистрация: 04.12.2011
Сообщений: 7,705
Записей в блоге: 3
07.05.2014, 02:21     Замена If на Switch вызвала ошибки #8
DramaQueen, иной раз исправление ошибки может всё разрушить:
Цитата Сообщение от DramaQueen Посмотреть сообщение
if (vel = 1)
Если написать правильно:
C++
1
if (vel == 1)
то работать не станет. Причина та же, у vel нет значения на которое Вы рассчитываете.

Добавлено через 2 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
у меня глаза красные

Не по теме:

Ты сам признался! А как бы я ещё об этом узнал? Ни-как.



Добавлено через 23 минуты
DramaQueen, Вы удивитесь, но если убрать if'ы то ничего не изменится и это обычно не к добру. Расскажите, что должна делать программка. Забегая вперёд: поле vel, это марка или возрастная группа велосипеда?
DramaQueen
 Аватар для DramaQueen
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 30
07.05.2014, 11:51  [ТС]     Замена If на Switch вызвала ошибки #9
Не по теме:

DramaQueen, сочетание красного и зелёного, - классика. Это я задний фон имею ввиду. А то Croessmah, тоже зелёный) Но он и так не обидится.
Благодарю) ирония в том, что сейчас учусь в беларуси, если вы понимаете о чем я


Суть программы: я предлагаю пользователю ассортимент(взрослый, подростковый и детский) в зависимости от выбора, предлагаю тарифы, затем вывожу итоговую цену)
К сожалению, ошибку немного позже исправлю пока на парах.

Добавлено через 2 часа 55 минут
Присваивание не помогло :с
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6169 / 2898 / 282
Регистрация: 04.12.2011
Сообщений: 7,705
Записей в блоге: 3
07.05.2014, 18:16     Замена If на Switch вызвала ошибки #10
Цитата Сообщение от DramaQueen Посмотреть сообщение
если вы понимаете о чем я
DramaQueen, я стараюсь, но никога не унываю от непонимания, - напортив, загадка стимулирует.
Что касается Беларуси, мною любимой, то теряюсь в мыслях интерпретируюя цвета в этом контексте:
Красный цвет, - цвет надежды человечества? В Вашем случае, - более чем (имхо).
Зелёный цвет, - фон в котором угадывается чей-то монумент. Бюст если не ошибаюсь. Я не против бюста. Хотя с уверенностью могу сказать только, что это не Croessmah.
То есть непонятно, но интригует. Что же ещё нужно? Всё правильно.
Давайте о задаче поговорим. В Вашей структуре есть поля и непонятно, что значит поле vel. Это возрастная группа или марка (название модели). Я не могу связать данные в файле (видимо записи полей структуры) с анализом и действиями в программе. Выложите-ка задание так, как оно изложено в методичке.
DramaQueen
 Аватар для DramaQueen
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 30
07.05.2014, 18:57  [ТС]     Замена If на Switch вызвала ошибки #11
Это курсовая :с
Система учета заказов в пункте проката (Ассортимент проката, тарифы в зависимости от времени, стоимость проката, учет возврата). Входные и выходные данные могут храниться в текстовых файлах, файлах приложений Microsoft и базах данных.
Все данные(Ассортимент проката, тарифы в зависимости от времени, стоимость проката, учет возврата) хранятся в txt файлах, моя задача написать структуру на заданную тему.
Я создаю диалог с пользователем, вывожу ассортимент. Осуществляется выбор, дальше идут варианты тарифов, для vel=1 один тариф, для vel=2 другой и тд. vel это номер выбора из ассортимента)

С if программа работает примерно так, но это только маленький кусочек программы, еще писать и писать
Миниатюры
Замена If на Switch вызвала ошибки  
DramaQueen
 Аватар для DramaQueen
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 30
07.05.2014, 20:27  [ТС]     Замена If на Switch вызвала ошибки #12
Еще вот какой-то глюк
Миниатюры
Замена If на Switch вызвала ошибки  
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6169 / 2898 / 282
Регистрация: 04.12.2011
Сообщений: 7,705
Записей в блоге: 3
07.05.2014, 20:38     Замена If на Switch вызвала ошибки #13
Цитата Сообщение от DramaQueen Посмотреть сообщение
Еще вот какой-то глюк
Я писал, что vel объявлена, но не ей присвоено значение. Напишите:
C++
1
int vel = p.vel;
Но легче не станет. Структуру лучше бы назвать Bicycle (велосипед). Поле vel - age_group (возрастная группа). Стоимость - тип int, float или double.
Вообще это не задача, а курсовая работа, то есть не на 15 мин. дело. Посмотрю, что смогу сделать.
DramaQueen
 Аватар для DramaQueen
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 30
07.05.2014, 20:46  [ТС]     Замена If на Switch вызвала ошибки #14
Цитата Сообщение от IGPIGP Посмотреть сообщение
Но легче не станет.
Ошибку не выдает, но и тарифы не выводит
Цитата Сообщение от IGPIGP Посмотреть сообщение
Структуру лучше бы назвать Bicycle (велосипед). Поле vel - age_group (возрастная группа). Стоимость - тип int, float или double.
я учту)
Цитата Сообщение от IGPIGP Посмотреть сообщение
Вообще это не задача, а курсовая работа, то есть не на 15 мин. дело. Посмотрю, что смогу сделать.
огромное спасибо, вообще, за какое-либо внимание к проблеме
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6169 / 2898 / 282
Регистрация: 04.12.2011
Сообщений: 7,705
Записей в блоге: 3
09.05.2014, 09:16     Замена If на Switch вызвала ошибки #15
DramaQueen, не было времени вдуматься, вот посмотрите, может что-то пригодится. До после праздника, с коим и поздравляю!
Вложения
Тип файла: 7z Bycicle.7z (3.6 Кб, 4 просмотров)
DramaQueen
 Аватар для DramaQueen
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 30
09.05.2014, 13:40  [ТС]     Замена If на Switch вызвала ошибки #16
Это просто невероятно! Я даже не знаю как Вас благодарить! Я, конечно, и половины не знаю, но просто огромнейшее Вам спасибо!
Цитата Сообщение от IGPIGP Посмотреть сообщение
До после праздника, с коим и поздравляю!
Спасибо, и Вас с ним же! У нас еще и сегодня открытие чемпионата! Кстати, если надумаете в Минск, хоккей посмотреть, есть лишние билеты на некоторые матчи,я совершенно серьезно!
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6169 / 2898 / 282
Регистрация: 04.12.2011
Сообщений: 7,705
Записей в блоге: 3
09.05.2014, 14:24     Замена If на Switch вызвала ошибки #17
Посмотрите код, он не на С, а на С++, но такую задачу лучше бы не в консоли делать. Представления требуют таблиц, развитого меню, т.е. GUI. Вмоём варианте - топорный одно-поточный каркасик и там всё сыро и нужно доделывать. Если пригодится, то я уже рад.

Не по теме:

Что касается Минска, то я люблю этот город. И у меня там хорошие друзья. Красивая, девушка, которая любит хоккей, это завораживает!
Спасибо, за предложение.

DramaQueen
 Аватар для DramaQueen
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 30
09.05.2014, 16:23  [ТС]     Замена If на Switch вызвала ошибки #18
Цитата Сообщение от IGPIGP Посмотреть сообщение
Посмотрите код, он не на С, а на С++, но такую задачу лучше бы не в консоли делать. Представления требуют таблиц, развитого меню, т.е. GUI. Вмоём варианте - топорный одно-поточный каркасик и там всё сыро и нужно доделывать. Если пригодится, то я уже рад.
Визуал выдает ошибки, пытаюсь разобраться)
в частности эта, меня смущает, не понимаю,чего он от меня хочет
Миниатюры
Замена If на Switch вызвала ошибки  
DramaQueen
 Аватар для DramaQueen
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 30
09.05.2014, 16:25  [ТС]     Замена If на Switch вызвала ошибки #19
Цитата Сообщение от IGPIGP Посмотреть сообщение
Красивая, девушка, которая любит хоккей, это завораживает!
Люблю-это громко сказано, я просто надеюсь наши отыграются за олимпиаду, а за красивую спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2014, 17:28     Замена If на Switch вызвала ошибки
Еще ссылки по теме:

C++ Switch case внутри switch case
Ошибка: "Ваша программа вызвала нарушение доступа (ошибку сегментации)" C++
Посмотрите ошибки: switch и строка в char C++

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

Или воспользуйтесь поиском по форуму:
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6169 / 2898 / 282
Регистрация: 04.12.2011
Сообщений: 7,705
Записей в блоге: 3
09.05.2014, 17:28     Замена If на Switch вызвала ошибки #20
Цитата Сообщение от DramaQueen Посмотреть сообщение
Визуал выдает ошибки, пытаюсь разобраться)
У меня работает)
Может конфликтуют компиляторы или настройки. У Вас какая версия и тип проекта? Нужно создать пустой проект (не Console App например). Потом в папку sorce files (исходный код и она будет пуста) добавить файл исходного кода :
правой кнопкой на папке - меню, потом создать элемент, выберите cpp файл, введите имя Main.
Создастся cpp-шник в который копи-пастом перенесите код. Я не додумался сам cpp сжать.

Пока навскидку попробуйте подключить библиотеку <time.h>
И совместно с <citime> и вместо неё. У меня 2008Pro и в ней компилятор с++ работает с этим кодом в любых вариантах. На всякий вот проект целиком.
И да! При первом запуске после компиляции, щёлкните правой на линейке кнопок управления (верхней линейке окна) программы и выберите свойства, - настройки, - шрифты, -
и тут выберите Lusinda Console. Иначе по русски не получится.
Вложения
Тип файла: zip Bycicle_arenda.zip (3.86 Мб, 5 просмотров)
Yandex
Объявления
09.05.2014, 17:28     Замена If на Switch вызвала ошибки
Ответ Создать тему
Опции темы

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