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

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

31.05.2017, 07:30. Показов 2313. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru