Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 1
Регистрация: 21.03.2015
Сообщений: 72

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

31.05.2017, 07:30. Показов 2299. Ответов 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)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.05.2017, 07:30
Ответы с готовыми решениями:

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

Метод простой итерации. Программа не выходит из цикла
метод простой итерации при нажатие кнопки решить по зависает как вы думаете почему unit Unit1; interface uses Windows,...

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

3
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
31.05.2017, 10:03
getline() используй.
Цитата Сообщение от zzzLoLzzz Посмотреть сообщение
Как русифицировать ввод в консоль?
Тема сверху прикреплена про это.
0
Рэмбо комнатный
 Аватар для GeFacle
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
31.05.2017, 11:25
Лучший ответ Сообщение было отмечено 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
2 / 2 / 1
Регистрация: 21.03.2015
Сообщений: 72
31.05.2017, 14:48  [ТС]
GeFacle, Спасибо! Помогло. Больше нет зацикливания.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.05.2017, 14:48
Помогаю со студенческими работами здесь

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

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

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

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

Главное меню
Хочу сделать главное меню.. например, установить на форму контрол mainmenu, расположить его в самом верху и сделать его невидимым.. И чтобы...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru