Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
vbartalevich
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 45
1

Почему на консоль выводится "1" и дальше ничего не происходит? (цикл while)

29.01.2016, 10:14. Просмотров 285. Ответов 7
Метки нет (Все метки)

Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <Windows.h>
#include <conio.h>
using namespace std;
int main() {
    int i = 0;
    while (true) {
        cout << ++i;
        Sleep(500);
        if (i >= 10) {
            cout << "i >= 10";
        }
        else {
            _getch();
        }
    }
    system("pause");
    return 0;
}
Проблема в том, что консоль выводит "1" и просто дальше ничего не происходит, сама консоль работает, так как курсор мигает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2016, 10:14
Ответы с готовыми решениями:

Подскажите как сделать, например "для продолжения нажмите клавишу х" и дальше выводится результат с шагом заданым пользователем
Подскажите как сделать, например &quot;для продолжения нажмите клавишу х&quot; и дальше...

Почему происходит ошибка времени выполнения в решении задачи "Ход конем"?
Добрый день! Я попытался решить одну задачку о шахматах. Проблема в том, что...

что дальше? (программа вводит информацию из ведомости и печатает фамилии студентов, учащихся на "4". "5" и их процентное соотношение с другими)
Ведомость о результатах зимней сессии содержит информацию: фамилия и инициалы...

Цикл "зацикливается", неизвестно почему
Программа представляет собой демонстрацию движений двух &quot;йо-йо&quot; (катушечных...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить...

7
Kastaneda
Jesus loves me
Эксперт С++
4937 / 3013 / 346
Регистрация: 12.12.2009
Сообщений: 7,610
Записей в блоге: 2
Завершенные тесты: 1
29.01.2016, 10:17 2
enter нажми
0
Kotik_leapold
101 / 91 / 82
Регистрация: 18.12.2015
Сообщений: 555
29.01.2016, 13:56 3
Здраствуйте, в даном случае нужно указать бесконечному циклу условия выхода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main() {
    int i = 0;
 
    while (true) {
        cout << ++i;
 
        Sleep(500);
 
        if (i >= 10) {
            cout << "i >= 10";
        } else if (i == 100) {
             break;
        } else {
            _getch();
        }
    }
    system("pause");
    return 0;
}
0
Aymurat
119 / 111 / 65
Регистрация: 07.11.2014
Сообщений: 756
Завершенные тесты: 6
29.01.2016, 14:05 4
Если я правильно понял, нужно написать программу, которая выводит 123456789 с определенной задержкой. Закомментируйте условие с _getch; поставьте break; если нужно оборвать цикл. Точно задание не понял, но должно быть так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <Windows.h>
#include <conio.h>
using namespace std;
int main() {
    int i = 0;
    while (true) {
        cout << ++i;
        Sleep(500);
        if (i >= 10) {
            cout << "  i >= 10"; break;
        }
        /*else {
            _getch();
        }*/
    }
    system("pause");
    return 0;
}
0
HELLKAR
14 / 14 / 14
Регистрация: 11.04.2015
Сообщений: 50
Завершенные тесты: 1
29.01.2016, 14:25 5
Поддерживаю Aymurat, условие с _getch ожидает нажатия какой-либо клавиши для продолжения цикла,
и условие остановки цикла необходимо, как верно заметил Kotik_leapold.
Можно попробовать такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <Windows.h>
#include <iomanip>
#include <conio.h>
using namespace std;
int main() {
    int i = 0;
    while (true) {
        cout << setw(3) << ++i;
        Sleep(500);
        if (i >= 10) {
            cout << endl;
            cout << "i > 10" << endl;
            break;
        }
    }
    system("pause");
    return 0;
}
Выводит с задержкой первые десять чисел с установленным интервалом, затем ругается что i > 10 и завершает работу.
Читать немного удобнее с такими изменениями
0
Aymurat
119 / 111 / 65
Регистрация: 07.11.2014
Сообщений: 756
Завершенные тесты: 6
29.01.2016, 14:27 6
HELLKAR, а мой код разве не то же самое делает?
0
HELLKAR
14 / 14 / 14
Регистрация: 11.04.2015
Сообщений: 50
Завершенные тесты: 1
29.01.2016, 14:31 7
Aymurat, делает то же самое, только читабельность не очень
В консоли выводит все в одну строку, без пробелов...
0
Aymurat
119 / 111 / 65
Регистрация: 07.11.2014
Сообщений: 756
Завершенные тесты: 6
29.01.2016, 14:43 8
А так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <Windows.h>
#include <conio.h>
using namespace std;
int main() {
    int i = 0;
    while (true) {
        cout << ++i<<" ";
        Sleep(500);
        if (i >= 10) {
            cout << "i >= 10" <<endl; break;
        }
        /*else {
            _getch();
        }*/
    }
    system("pause");
    return 0;
}
0
29.01.2016, 14:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2016, 14:43

Обучение по книге Страуструпа "принципы и практика C++". Не выводится "Hello, World"
Ребят, помогите пожалуйста, пропал на первом же примере из книги, автор даёт...

Что происходит когда например "char* g="fdgag";"?
Сабж. Я понял создается динамический массив с помощью malloc() и поэтому к нему...

я задал произвольный текст длинной 5 строк, и допустим что я ввел 5 раз букву "П" , какой цикл нужно создать чтобы пометять букву "П" на букву "Р" ?
я задал произвольный текст длинной 5 строк, и допустим что я ввел 5 раз букву...


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

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

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