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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
_THE_f0restw0w
1 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 14
#1

Ошибка в dev C++! - C++

03.06.2013, 10:24. Просмотров 1355. Ответов 18
Метки нет (Все метки)

Сделал небольшую программку,при вводе числа 29,должно вывести числа 2013..все проходит без ошибок...а при вводе числа больше или меньше данного всё-же высвечивается число 2013...помогите пожалуйста...
Хотелось бы сделать:
Вывести сообщение 'неверное число'! и выйти из программы через 5 секунд..
А главное чтобы не выводило число 2013
Заранее спасибо!

Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
int main()
{   
    setlocale(LC_CTYPE,"Russian");
    
    int set = 0;
    cout << "Введите код : ";
    cin >> set;
    
    if(set = 29) 
    {
    cout << "Число: 2013" << endl;
    }
    if(set < 29 || set > 29)
    {
    exit();
    }
    
    cin.get();
    cin.get();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 10:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в dev C++! (C++):

Ошибка в Dev-C++ - C++
Скачал книгу &quot;Как программировать на С++&quot; Харви и Пола Дейтелов. Дочитал до первой программы и попробовал её переписать в Dev-C++ ...

Ошибка в Dev C++ - C++
Внезапно отказался капускать приложение (компилирует без ошиок) Перезагрузка win не помогает. Что делать?

ошибка Dev-c++ - C++
у меня с Dev-c++небльшая проблема.когда я набираю любую программу(будь то проект или source file) и нажимаю &quot;запустить&quot; то он мне выдаёт...

Ошибка компиляции с dev c ++ - C++
Не получается скомпилировать, ошибок нет

Ошибка -lglut32. Dev C++ - C++
#include&lt;stdlib.h&gt; #include&lt;GL/glut.h&gt; #include&lt;math.h&gt; int w=800,h=600; int x,y; void DrawBox() { glColor3f(1.0,0.0,0.0); ...

Ошибка компиляции в Dev C++ - C++
Здравствуйте, у меня есть ошибка с комплиации в dev c++, ОС Windows 8.1 Профессиональная

18
serggg
54 / 38 / 6
Регистрация: 24.03.2013
Сообщений: 802
Завершенные тесты: 1
03.06.2013, 11:15 #2
Ну как-то вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{   
    setlocale(LC_CTYPE,"Russian");
    
    int set = 0;
    cout << "Введите код : ";
    cin >> set;
    
    if(set == 29)  // у вас было set = 29
    {
    cout << "Число: 2013" << endl;
    }
    else // если условие проверки одно, то не обязательно проверять число ещё раз
    {
    cout << "Неверное число!" << endl;
    }  
    cin.get();
}
Добавлено через 5 минут
Но программа будет закрываться не через 5 секунд, а только после нажатия Enter.
А вот так будет как вы хотели:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <windows.h> // подключаем библиотеку функций ОС
using namespace std;
 
int main()
{   
    setlocale(LC_CTYPE,"Russian");
    
    int set = 0;
    cout << "Введите код : ";
    cin >> set;
    
    if(set == 29) 
    {
    cout << "Число: 2013" << endl;
    cin.get(); // здесь просто останавливаем программу до нажатия Enter
    }
    else
    {
    cout << "Неверное число!" << endl;
    Sleep(5000L); // а тут останавливаем выполнение программы на 5 сек и выходим
    }
}
1
_THE_f0restw0w
1 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 14
03.06.2013, 12:40  [ТС] #3
Цитата Сообщение от serggg Посмотреть сообщение
Ну как-то вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{   
    setlocale(LC_CTYPE,"Russian");
    
    int set = 0;
    cout << "Введите код : ";
    cin >> set;
    
    if(set == 29)  // у вас было set = 29
    {
    cout << "Число: 2013" << endl;
    }
    else // если условие проверки одно, то не обязательно проверять число ещё раз
    {
    cout << "Неверное число!" << endl;
    }  
    cin.get();
}
Добавлено через 5 минут
Но программа будет закрываться не через 5 секунд, а только после нажатия Enter.
А вот так будет как вы хотели:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <windows.h> // подключаем библиотеку функций ОС
using namespace std;
 
int main()
{   
    setlocale(LC_CTYPE,"Russian");
    
    int set = 0;
    cout << "Введите код : ";
    cin >> set;
    
    if(set == 29) 
    {
    cout << "Число: 2013" << endl;
    cin.get(); // здесь просто останавливаем программу до нажатия Enter
    }
    else
    {
    cout << "Неверное число!" << endl;
    Sleep(5000L); // а тут останавливаем выполнение программы на 5 сек и выходим
    }
}
Спасибо большое!!!
Только чуть чуть поправочка:
После -
cout << "Число: 2013" << endl;
cin.get();
нужно добавить ещё один cin.get();
так как он отлавливает все что входит в консоль..
0
serggg
54 / 38 / 6
Регистрация: 24.03.2013
Сообщений: 802
Завершенные тесты: 1
03.06.2013, 12:44 #4
Можно сделать так:
Подключить библиотеку:
C++
1
#include <conio.h>
И на место cin.get(); написать:
C++
1
_getche();
И тогда программа остановится, пока вы не нажмёте любую клавишу!
А если вам нужно нажатие определённой клавиши, то в скобках указываете её код.
1
_THE_f0restw0w
1 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 14
03.06.2013, 13:09  [ТС] #5
Цитата Сообщение от serggg Посмотреть сообщение
Можно сделать так:
Подключить библиотеку:
C++
1
#include <conio.h>
И на место cin.get(); написать:
C++
1
_getche();
И тогда программа остановится, пока вы не нажмёте любую клавишу!
А если вам нужно нажатие определённой клавиши, то в скобках указываете её код.
Ещё раз спасибо...можно ещё вопросик..
А как сделать обратный отсчет времени например где:

else
{
cout << "Ошибка!!" << endl;
cout << "До выхода осталось % секунд" << endl;
Sleep(3500L);
}

и чтобы этот % секунд брало из Sleep()
но прибавляло ещё +100 к времени но Sleep остался тотже...
тоесть % секунд нужно что-бы показывало на 0.1 больше...
0
serggg
54 / 38 / 6
Регистрация: 24.03.2013
Сообщений: 802
Завершенные тесты: 1
03.06.2013, 13:18 #6
Вот так будет:
C++
1
2
3
4
5
6
7
8
9
10
11
12
else
    {
        cout << "Ошибка!!!" << endl; // выдаём инфу об ошибке
        Sleep(1000L); // подождём 1 секунду, чтобы пользователь увидел, что произошла ошибка
        for(int k=5; k>0; k--) // задаём цикл по отсчёту времени, если тебе нужно не 5 секунд, а например 2 или 17, то пишешь k=2 или k=17 и всё... больше ничего не меняешь
        {
            system("cls");  // очищаем экран
            cout << "До выхода осталось "<<k<<" секунд" << endl; // выводим на экран кол-во оставшихся секунд
            Sleep(1000L); // ждём 1 секунду и снова выполняем цикл
                        // цикл for выполняется, пока счётчик k не дойдёт до 0
        }
    }
1
Naudiz
14 / 12 / 1
Регистрация: 04.11.2011
Сообщений: 137
03.06.2013, 13:19 #7
_THE_f0restw0w, вся проблема в этом участке

Цитата Сообщение от _THE_f0restw0w Посмотреть сообщение
C++
1
2
3
4
if(set = 29) 
{ 
cout << "Число: 2013" << endl; 
}
Т.к. компилятор в Dev-C++ пропускает такую явную ошибку: if(set = 29) - присваивание не является условием, если заменить на if(set == 29) всё работает, как надо. В новых версиях MinGW этот косяк исправили, но Dev С++ уже 100 лет в обед, как с такими делами в его форках хз.

Добавлено через 20 секунд
_THE_f0restw0w, вся проблема в этом участке

Цитата Сообщение от _THE_f0restw0w Посмотреть сообщение
C++
1
2
3
4
if(set = 29) 
{ 
cout << "Число: 2013" << endl; 
}
Т.к. компилятор в Dev-C++ пропускает такую явную ошибку: if(set = 29) - присваивание не является условием, если заменить на if(set == 29) всё работает, как надо. В новых версиях MinGW этот косяк исправили, но Dev С++ уже 100 лет в обед, как с такими делами в его форках хз.
0
serggg
54 / 38 / 6
Регистрация: 24.03.2013
Сообщений: 802
Завершенные тесты: 1
03.06.2013, 13:24 #8
Naudiz
Проблема уже давно решена
0
_THE_f0restw0w
1 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 14
03.06.2013, 13:34  [ТС] #9
Цитата Сообщение от serggg Посмотреть сообщение
Naudiz
Проблема уже давно решена
так не получается нужен отсчет по sleep..
а не всё сразу..
получится что просто цикл выведет 5 строк со значениями в меньшую сторону...
нужно чтобы поочерёдно шло,секунда пройдёт, выведет что осталось сколько-то секунд..

Добавлено через 1 минуту
А нет извените...всё работает спасибо!
0
serggg
54 / 38 / 6
Регистрация: 24.03.2013
Сообщений: 802
Завершенные тесты: 1
03.06.2013, 13:37 #10
Если бы там не было строки:
C++
1
system("cls");  // очищаем экран
то получилось бы 5 строк, а так создаётся впечатление что просто секунды тикают!
0
_THE_f0restw0w
1 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 14
03.06.2013, 13:40  [ТС] #11
Цитата Сообщение от serggg Посмотреть сообщение
Если бы там не было строки:
C++
1
system("cls");  // очищаем экран
то получилось бы 5 строк, а так создаётся впечатление что просто секунды тикают!
нельзя ли сделать чтобы только секунда менялась ?
- а-то вся строка моргает впечатление как-будто подзависает )
0
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,471
03.06.2013, 14:27 #12
Цитата Сообщение от Naudiz Посмотреть сообщение
Т.к. компилятор в Dev-C++ пропускает такую явную ошибку: if(set = 29) - присваивание не является условием, если заменить на if(set == 29) всё работает, как надо. В новых версиях MinGW этот косяк исправили
Это не ошибка. Впрочем, последнее слово за стандартом, а я английского не знаю. А предупреждения бы не помешали в любом случае.

Цитата Сообщение от Naudiz Посмотреть сообщение
Dev С++ уже 100 лет в обед, как с такими делами в его форках хз.
надо качать Dev-C++ 4.9.2.5 без компилятора и ставить свой компилятор, какой надо
0
Naudiz
14 / 12 / 1
Регистрация: 04.11.2011
Сообщений: 137
03.06.2013, 14:40 #13
Цитата Сообщение от kravam Посмотреть сообщение
Это не ошибка. Впрочем, последнее слово за стандартом, а я английского не знаю.
Впрочем GCC 4.6 на линуксе у меня такой код не пропускает(странно ведь MinGW его порт), да и Visual C++ такое не компилирует.
Цитата Сообщение от kravam Посмотреть сообщение
надо качать Dev-C++ 4.9.2.5 без компилятора
Просто я не особо слежу за этой IDE, вроде последняя официальная версия от Bloodshed - 4.9.9.2

Добавлено через 3 минуты
Ради интереса скачал Orwell Dev C++ (форк) - этой проблемы в частности и ряда других уже нет ))
0
serggg
54 / 38 / 6
Регистрация: 24.03.2013
Сообщений: 802
Завершенные тесты: 1
03.06.2013, 14:52 #14
нельзя ли сделать чтобы только секунда менялась ?
- а-то вся строка моргает впечатление как-будто подзависает )
Тут уж никак! Т. к. ты хочешь получать строку "До выхода осталось ... секунд" каждый раз - то только так! А если без этой строки, чтобы на экране было только число секунд - то можно!
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.06.2013, 15:18 #15
Цитата Сообщение от Naudiz Посмотреть сообщение
Visual C++ такое не компилирует
Очень даже компилирует.
Т.к. компилятор в Dev-C++ пропускает такую явную ошибку: if(set = 29) - присваивание не является условием
И вообще это не ошибка. А если написать: if (cin >> a), то это тоже ошибка? Присваивание имеет результат, этот результат if и анализирует: 0 или не 0.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2013, 15:18
Привет! Вот еще темы с ответами:

Ошибка или баг в Dev C++? - C++
помогите разобраться: вот простой код #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; class card { public: ...

ошибка в Dev C++ source not complete - C++
Отредактировала программу, смотрю ошибок вроде нет, откомпилировала, ошибок не обнаружено, с радостью запускаю и тут выдается маленькое...

Ошибка Dev C++ undefined reference - C++
Подскажите пожалуйста, при компиляции программы выдает ошибки: undefined reference to '_streams'. Как исправить? Заранее спасибо!

dev c++: ошибка <anonymous union> - C++
есть такой код struct Wt { short w; union { struct C {unsigned char c0, c1;} c; // Counts of 0, 1 unsigned short c01; //...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
03.06.2013, 15:18
Ответ Создать тему
Опции темы

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