Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
zzzLoLzzz
2 / 2 / 1
Регистрация: 21.03.2015
Сообщений: 67
1

Зацикливание действий: программа выходит в главное меню и снова заходит в выбранный метод записи.

31.05.2017, 07:30. Просмотров 916. Ответов 3
Метки нет (Все метки)

Всем привет! Ребят, подскажите мне, что я написал не так в программе. При запуске программы Я выбираю первое действие (Запись в файл чего-нибудь) и вот после того как эта операция заканчивается и мне выходит вывод того, что я написал, программа выходит в главное меню и программа снова заходит в этот метод записи.Происходит зацикливание на одном действие.
Вот собственно мой код. Пишу на Microsoft Visual Studio

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
#include "stdafx.h"
using namespace std;
 
int main(){
    setlocale(0, "");
    int fige;
    Document first_unit;
        
    for (int i = 0; i < 500 ; i++) {
        std::cout << "Меню:" << std::endl;
        std::cout << "1 - Воспроизвести операцию записи" << std::endl;
        std::cout << "2 - Воспроизвести операцию считывания" << std::endl;
        std::cout << "9 - Выход из программы" << std::endl;
        std::cout << "Что будем делать? ";
        std::cin >> fige;
 
        switch (fige) {
            case 1: {
                system("cls");
 
                first_unit.write();
                std::cout << std::endl;
 
                system("pause");
                system("cls");
                break;
            }
            case 2: {
                system("cls");
 
                first_unit.read();
                std::cout << std::endl;
 
                system("pause");
                system("cls");
                break;
            }
            case 9: {
                system("cls");
                return 0;
            }
        }
    }
    system("pause");
    return 0;
}
Document.cpp
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
#include "stdafx.h"
 
using namespace std;
 
Document::Document() {
 
}
 
void Document::write() { /// Реализация метода записи в файл
    std::cout << "Какую информацию запишем в файл?" << std::endl;
    ofstream unit; /// Для записи в файл
    unit.open("Information.txt", std::ios::binary | std::ios::app);
 
    std::cout << "Введите несколько строк" << std::endl;
    std::cout << "Завершающий символ ввода - > '#'" << std::endl;
    cin.get(first_string, 512, '#');
    system("cls");
    std::cout << "Вы ввели следующие строки:\n" << first_string << std::endl;
 
    unit << first_string;
 
    unit.close();
}
 
void Document::read() { /// Реализация метода считывания с файла
    std::cout << "Работает метод считывания информации с файла." << std::endl;
    ifstream unit;
    unit.open("Information.txt");
 
    
    unit >> first_string;
    
    unit.close();
}
Document.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef DOCUMENT
#define DOCUMENT
#include "stdafx.h"
 
class Document {
private:
    char first_string[ ];
public:
    Document();
    void write();   /// Метод для того чтобы записать в файл
    void read();    /// Метод для того чтобы прочитать файл
 
};
 
#endif // DOCUMENT
Еще бы хотел по интересоваться. Как русифицировать ввод в консоль? Чтобы Я писал в консоль на русском и он мне в файл так же записал. Читал, что помогает это
C++
1
2
3
4
setlocale(0, "");
setlocale(LC_ALL,""); 
SetConsoleCP(1251); 
SetConsoleOutputCP(1251);
Но я не увидел результата от этого.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2017, 07:30
Ответы с готовыми решениями:

Возврат назад в главное меню из подпункта меню
Добрый вечер, подскажите пожалуйста, как организовать многоуровневое меню? А...

HP 625 снова и снова перезагружается в безопасный не заходит
Ребята помогите , проблема вот какая врубаю я ноут он доходит до заставки...

Метод простой итерации. Программа не выходит из цикла
метод простой итерации при нажатие кнопки решить по зависает как вы думаете...

Заходит и сразу выходит из учетки
Здравствуйте,при входе в виндовс 7 и вводе пароля на 1 сек черный экран и опять...

Снова Update не выходит
Доброго дня, господа. Задачка вот такая: есть две таблицы: 1. Div -...

3
nmcf
6507 / 5740 / 2613
Регистрация: 14.04.2014
Сообщений: 24,480
31.05.2017, 10:03 2
getline() используй.
Цитата Сообщение от zzzLoLzzz Посмотреть сообщение
Как русифицировать ввод в консоль?
Тема сверху прикреплена про это.
0
GeFacle
Рэмбо комнатный
95 / 95 / 99
Регистрация: 05.03.2017
Сообщений: 505
Завершенные тесты: 4
31.05.2017, 11:25 3
Лучший ответ Сообщение было отмечено zzzLoLzzz как решение

Решение

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
#include "stdafx.h"
using namespace std;
 
int main(){
    setlocale(0, "");
    int fige = 0;
    Document first_unit;
        
        while(fige!=9)
        {
        system("cls");
        std::cout << "Меню:" << std::endl;
        std::cout << "1 - Воспроизвести операцию записи" << std::endl;
        std::cout << "2 - Воспроизвести операцию считывания" << std::endl;
        std::cout << "9 - Выход из программы" << std::endl;
        std::cout << "Что будем делать? ";
        std::cin >> fige;
 
        switch (fige) 
        {
            case 1: 
                system("cls");
                first_unit.write();
                std::cout << std::endl;
                system("pause");
                break;
            case 2: 
                system("cls");
                first_unit.read();
                std::cout << std::endl;
                system("pause");
                break;
        }
        }
    system("pause");
    return 0;
}
я б так сделал, выкидывать не должно
1
zzzLoLzzz
2 / 2 / 1
Регистрация: 21.03.2015
Сообщений: 67
31.05.2017, 14:48  [ТС] 4
GeFacle, Спасибо! Помогло. Больше нет зацикливания.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2017, 14:48

Снова вложенный Select не выходит
И снова здравствуйте. Имеются 2 таблички Divisions - список подразделений и...

Разработать скрипт, который выводит меню из шести пунктов, причем выбранный пункт меню подсвечивается определенным цветом.Рекомендуется использование
Разработать скрипт, который выводит меню из шести пунктов, причем выбранный...

главное меню
Перехожу на Visual c++ c c++ Builder Создаю приложение win32, но в нем есть...


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

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

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