Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2014, 05:17   #1
lev_
 
Регистрация: 02.06.2014
Сообщений: 4
По умолчанию Повторный запуск программы

При повторном запуске результаты поиска не выводятся и не записываются в файл. При первичном все работает. где здесь ошибка?
Код:
#include <iostream>
#include <iomanip>
#include <string>
#include <conio.h>
#include <fstream>
using namespace std;
void create();
void open();
void menu();
void menu2();
void spisok_inst();
void spisok_kaf();
void phone();
struct spisok
{
    char name_isnt[100];
    char num_korp[100];
    char name_kaf[100];
    char phone_kaf[100];
};
spisok sp[100];
int n = 0;
 
void menu()
{
    int key;
    cout << endl;
    cout << "   ГЛАВНОЕ МЕНЮ" << endl << endl;
    cout << "1) Создать файл" << endl;
    cout << "2) Открыть файл" << endl;
    cout << "3) Поиск" << endl;
    cout << "4) Выход" << endl;
    cin >> key;
    switch(key)
    {
    case 1:
        create();
        break;
    case 2:
        open();
        break;
    case 3:
        menu2();
        break;
    case 4:
        exit(0);
    }
    getch();
    system("cls");
}
void create()
{
    char filename[100];
    cout << "Введите название файла: ";
    cin >> filename;
    system("cls");
    ofstream fout;
    fout.open(filename);
    char answer;
    do
    {
        cout << "Введите название института: ";
        cin >> sp[n].name_isnt;
        cout << "Введите номер корпуса: ";
        cin >> sp[n].num_korp;
        cout << "Введите название кафедры: ";
        cin >> sp[n].name_kaf;
        cout << "Введите телефон кафедры: ";
        cin >> sp[n].phone_kaf;
        cout << endl;
        cout << "Вы хотите ввести еще данные? (y/n)" << endl;
        cin >> answer;
        cout << endl;
        n++;
    }
    while(answer == 'y');
    fout << "|Название института|Номер корпуса|Название кафедры|Телефон кафедры|" << endl;
    fout << "|==================|=============|================|===============|" << endl;
    for(int i=0; i<n; i++)
        fout << setw(5) << sp[i].name_isnt << setw(18) << sp[i].num_korp << setw(15) 
            << sp[i].name_kaf << setw(25) << sp[i].phone_kaf << endl;
    fout.close();
    cout << "Файл сохранен";
    getch();
    system("cls");
    menu();
}
void open()
{
    system("cls");
    char filename[100];
    cout << "Введите название файла: ";
    cin >> filename;
    ifstream fin;
    fin.open(filename);
    if(!fin.is_open())
    {
        cout << "Файл не найден.";
        getch();
        system("cls");
        menu();
    }
    while(!fin.eof())
    {
        string s;
        getline(fin, s);
        cout << s << endl;
    }
    fin.close();
    getch();
    system("cls");
    menu();
}
void menu2()
{
    system("cls");
    int key;
    cout << "     Меню 2:" << endl << endl;
    cout << "Искать:" << endl;
    cout << "1) список институтов" << endl;
    cout << "2) список кафедр" << endl;
    cout << "3) номер телефона кафедры" << endl << endl;
    cout << "4) выйти из программы" << endl;
    cin >> key;
    switch(key)
    {
    case 1:
        spisok_inst();
        break;
    case 2:
        spisok_kaf();
        break;
    case 3:
        phone();
        break;
    case 4:
        exit(0);
    }
    getch();
    system("cls");
    menu();
}
void spisok_inst()
{
    system("cls");
    char filename[100];
    cout << "Введите название файла: ";
    cin >> filename;
    ifstream f1;
    f1.open(filename);
    if(!f1.is_open())
    {
        cout << "Файл не найден.";
        getch();
        system("cls");
        menu();
    }
    string s;
    while(!f1.eof())
    {
        getline(f1, s);
        cout << s << endl;
    }
    f1.close();
    string num_korp1;
    cout << endl << "Введите номер корпуса: ";
    cin >> num_korp1;
    cout << endl << "Список интистутов, находящихся в " << num_korp1 << " корпусе" << endl; 
    for(int i=0; i<n; i++)
    {   
        if(num_korp1 == sp[i].num_korp)
            cout << sp[i].name_isnt << endl;
    }
    ofstream f2;
    cout << endl << "Введите  название файла: ";
    cin >> filename;
    f2.open(filename);
    f2 << "Список интистутов, находящихся в " << num_korp1 << " корпусе" << endl;
    for(int i=0; i<n; i++)
    {
        if(num_korp1 == sp[i].num_korp)
            f2 << sp[i].name_isnt << endl;
    }
    cout << endl << "Файл сохранен" << endl;
    f2.close();
    getch();
    system("cls");
    menu();
}
lev_ вне форума Ответить с цитированием
Старый 13.12.2014, 09:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Можно нескромный вопрос? - Отладчиком по шагам проходился?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.12.2014, 11:39   #3
lev_
 
Регистрация: 02.06.2014
Сообщений: 4
По умолчанию

да, вылетает при проверке открытия файла, где if(!f1.is_open()). в окне вывода пишет что невозможно найти или открыть файл PDB. что это значит?
lev_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск программы при помощи другой программы rublyabachka Общие вопросы по Java, Java SE, Kotlin 2 06.11.2013 22:16
Повторный запуск формы в Delphi art.marked Помощь студентам 3 05.01.2012 23:47
Открытие файлов и повторный запуск программы m0dE^ Общие вопросы Delphi 9 03.08.2011 20:45
запуск программы из под другой программы fomikadze Общие вопросы C/C++ 8 13.06.2011 14:47
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 14:33