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

Преждевременный выход из цикла - C++

Восстановить пароль Регистрация
 
4caster
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 6
10.05.2016, 20:23     Преждевременный выход из цикла #1
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
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
 
using namespace std;
 
void enter_new_note ();
void show_sheldue ();
int x = 1;
 
char Monday [11], Thuesday [11], Wednesday [11], Thursday [11], Friday [11], Saturday [11], Sunday [11];
 
int main (){
 
    while (x){
 
        cout << "Choose thing you want to do: \n" << "1. Enter new note\n" << "2. View schedule\n" << "0. Exit\n";
        cin >> x;
        switch (x) {
        case 1:
            enter_new_note ();
            break;
        case 2:
            //show_sheldue ();
            break;
        }
    }
 
   return 0;
}
void enter_new_note (){
    int day, number;
    cout << "Choose the day:\n" << "1. Monday \n" << "2. Thuesday \n" << "3. Wednesday \n" << "4. Thursday \n" << "5. Friday \n" << "6. Saturday \n" << "7. Sunday \n";
    cin >> day;
    cout << "Choose the number of sheldue (0-9):\n";
    cin >> number;
    switch (day){
 
        case 1:
            cin >> Monday [number];
            break;
        case 2:
            cin >> Thuesday [number];
            break;
        case 3:
            cin >> Wednesday [number];
            break;
        case 4:
            cin >> Thursday [number];
            break;
        case 5:
            cin >> Friday [number];
            break;
        case 6:
            cin >> Saturday [number];
            break;
        case 7:
            cin >> Sunday [number];
            break;
    }
 
return;
}
Собственно, проблема. Допустим, я хочу выбрать "Enter new note", т.е. воспользоваться функцией enter_new_note. Если я это делаю, то после занесения изменений происходит выход из цикла while в main(). Попробовал заккоментить эту функцию, в итоге цикл стал работать как надо. В чем проблема?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2016, 20:23     Преждевременный выход из цикла
Посмотрите здесь:

Выход из цикла C++
Выход из цикла C++
Преждевременный выход из цикла for на некотором промежутке C++
Принудительный выход из цикла C++
Преждевременный выход из цикла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nd2
1055 / 794 / 267
Регистрация: 29.01.2016
Сообщений: 2,469
10.05.2016, 20:39     Преждевременный выход из цикла #2
Цитата Сообщение от 4caster Посмотреть сообщение
то после занесения изменений
Цитата Сообщение от 4caster Посмотреть сообщение
cin >> Monday [number];
Что вводишь?
4caster
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 6
10.05.2016, 20:51  [ТС]     Преждевременный выход из цикла #3
asdf например
nd2
1055 / 794 / 267
Регистрация: 29.01.2016
Сообщений: 2,469
10.05.2016, 21:06     Преждевременный выход из цикла #4
Цитата Сообщение от 4caster Посмотреть сообщение
asdf например
Вот это - ввод одного символа:
Цитата Сообщение от 4caster Посмотреть сообщение
cin >> Monday [number];
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2908 / 1444 / 397
Регистрация: 18.10.2014
Сообщений: 2,662
10.05.2016, 21:10     Преждевременный выход из цикла #5
Цитата Сообщение от 4caster Посмотреть сообщение
asdf например
Это куда вы вводите "asdf"?

Вот это

C++
1
cin >> Monday [number]
- это запрос на чтение из cin одного-единственного символа. Это так задумано?

Причем этим символом скорее всего будет символ перевода строки, оставшийся в cin после cin >> number. Это так задумано?
nd2
1055 / 794 / 267
Регистрация: 29.01.2016
Сообщений: 2,469
10.05.2016, 21:13     Преждевременный выход из цикла #6
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Причем этим символом скорее всего будет символ перевода строки, оставшийся в cin после cin >> number. Это так задумано?
Нет, cin >> первые пробельные пропустит.
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2908 / 1444 / 397
Регистрация: 18.10.2014
Сообщений: 2,662
10.05.2016, 21:18     Преждевременный выход из цикла #7
Цитата Сообщение от nd2 Посмотреть сообщение
Нет, cin >> первые пробельные пропустит.
Да, точно. Мне почему-то казалось, что cin >> для единичного символа ведет себя как %c в scanf. Но это не так.
4caster
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 6
10.05.2016, 21:20  [ТС]     Преждевременный выход из цикла #8
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Причем этим символом скорее всего будет символ перевода строки, оставшийся в cin после cin >> number. Это так задумано?
На самом деле нет. Я думал, что можно будет ввести слово.
nd2
1055 / 794 / 267
Регистрация: 29.01.2016
Сообщений: 2,469
10.05.2016, 21:23     Преждевременный выход из цикла #9
Цитата Сообщение от 4caster Посмотреть сообщение
Я думал, что можно будет ввести слово.
number - это у тебя что означает?
4caster
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 6
10.05.2016, 21:29  [ТС]     Преждевременный выход из цикла #10
Предполагается, что на один день недели может быть запланировано несколько задач, в данном случае их 10. Когда мы вводим number, мы показываем, какую по счету задачу мы хотим ввести/изменить
nd2
1055 / 794 / 267
Регистрация: 29.01.2016
Сообщений: 2,469
10.05.2016, 21:35     Преждевременный выход из цикла #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Тогда тебе нужен не массив символов (char Monday [11]), а массив из 10 строк:
C++
1
char Monday [10][11]
Добавлено через 3 минуты
Тогда здесь уже можно будет вводить слово (состоящее не более чем из 10 символов):
C++
1
cin >> Monday [number];
4caster
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 6
10.05.2016, 21:37  [ТС]     Преждевременный выход из цикла #12
Цитата Сообщение от nd2 Посмотреть сообщение
Тогда тебе нужен не массив символов (char Monday [11]), а массив из 10 строк:
Действительно, заработало А если я хочу полностью вывести такой массив на экран, что нужно сделать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2016, 21:41     Преждевременный выход из цикла
Еще ссылки по теме:

C++ Подсчет дней между датами, преждевременный выход из цикла
Выход из вложенного цикла C++
Выход из цикла C++

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

Или воспользуйтесь поиском по форуму:
nd2
1055 / 794 / 267
Регистрация: 29.01.2016
Сообщений: 2,469
10.05.2016, 21:41     Преждевременный выход из цикла #13
Цитата Сообщение от 4caster Посмотреть сообщение
А если я хочу полностью вывести такой массив на экран, что нужно сделать?
Так же как ввод, только вывод (cout << ) в цикле.
Yandex
Объявления
10.05.2016, 21:41     Преждевременный выход из цикла
Ответ Создать тему
Опции темы

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