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

Непонятное поведение программы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка одномерного массива http://www.cyberforum.ru/cpp-beginners/thread1251781.html
задание отсортировать элементы массива, находящиеся слева от найденной позиции по убыванию, а элементы массива, находящиеся справа от найденной позиции по возрастанию. найденная позиция у меня - digit_element что не так??? int temp=0; bool exit=false; while(!exit) { exit=true;
C++ Вычислить значение выражения с тремя переменными Log: Domain Error Добрый день! В C++ совсем начинающий, и собственно в универе есть лабораторная работа, нужно написать програму которая будет вычислять значение выражения, в котором 3 переменных. Программу я вроде бы написал и она работает на случайных цифрах, однако у меня есть конкретные значения X,Y,Z которые подставив я долже получить ответ( который у меня есть), что бы проверить... http://www.cyberforum.ru/cpp-beginners/thread1251779.html
Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" C++
Всем привет. Есть два вопроса. 1. Нужно считать из txt файла числа в массив столбцов и строк. Код вроде правильный, но пишет ошибку:"Invalid allocation size: 4294967295 byte". #include <fstream> #include <algorithm> #include <ctime> #include <iostream> using namespace std; int main() {
C++ Не могу разобраться в термине "Битовые операторы"
Есть к примеру такой код, интересует строка fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY , я почитал про &, там как я понял сравниваются биты, почему в итоге возвращается тру или флолс? почему если в атрибутах находится инфа и папке и при сравнении с 0х00000010 будет false??? #include "stdafx.h" #include <Windows.h> #include <iostream> #include <string> using namespace std;
C++ Статическая линковка MinGW http://www.cyberforum.ru/cpp-beginners/thread1251758.html
Как задать статическую линковку для MinGW в среде Qt Creator? Прописал в pro- файле:QMAKE_CXXFLAGS += -static, но не помогло.
C++ Виртуальный operator() Есть такая иерархия классов. class Network { ...... }; class Server : public Network подробнее

Показать сообщение отдельно
lenchis001
1 / 1 / 0
Регистрация: 28.08.2014
Сообщений: 93
06.09.2014, 00:34     Непонятное поведение программы
Привет народ, вот кароч:
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include"stdafx.h"
#include"iostream"
using namespace std;
class calc{
    int *i, *j;
public:
    int &set_i();
    int &set_j();
    int add();
    int sub();
    int mul();
    float div();
    calc();
    ~calc();
};
int main(){
    typedef short unsigned su;
    setlocale(LC_ALL, "Russian");
    calc c;
    su v;
    do{
        cout << "Какое действие выполнить?\n   0. Выйти\n   1. Сложение   2. Вычитание   3. Умножение   4. Деление\n     Ваш ответ: ";
        cin >> v;
        switch (v){
        case 0:
            cout << "Всего доброго!\n";
            break;
        case 1:
            cout << "Введите значения операндов:\n";
            cin >> c.set_i() >> c.set_j();
            cout << "Ответ: " << c.add();
            break;
        case 2:
            cout << "Введите значения операндов:\n";
            cin >> c.set_i() >> c.set_j();
            cout << "Ответ: " << c.sub();
            break;
        case 3:
            cout << "Введите значения операндов:\n";
            cin >> c.set_i() >> c.set_j();
            cout << "Ответ: " << c.mul();
            break;
        case 4:
            cout << "Введите значения операндов:\n";
            cin >> c.set_i() >> c.set_j();
            cout << "Ответ: " << c.div();
            break;
        default:;
        }
    } while (v);
    system("pause");
    return 0;
}
calc::calc(){
    i = new int, j = new int;
    cout << "Память успешно выделена.\n";
}
calc::~calc(){
    delete i;
    delete j;
    cout << "Память успешно очищена.\n";
}
int &calc::set_i(){
    return *i;
}
int &calc::set_j(){
    return *j;
}
int calc::add(){
    return *i + *j;
}
int calc::sub(){
    return *i - *j;
}
int calc::mul(){
    return *i**j;
}
float calc::div(){
    return (float)*i/(*j);
}
Всё норм, но вот незадача: когда я ввожу сразу (cin>>v) что-то типо "рлшпмукпрлок" то у меня сразу сообщение "Всего доброго!" и я перехожу на "system("pause")", а если case 0 и всё что к нему причитается нет, то сразу на system("pause"), так вот, почему при подобном вводе не сбивается потом и программа не начинает беспорядочно выводить что попало? и почему срабатывает case 0? Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru