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

Ввод имени файла и FileExists - C++

Восстановить пароль Регистрация
 
bestpalyer1
-1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 47
30.05.2013, 19:23     Ввод имени файла и FileExists #1
Всем привет!
Ребят у меня такая проблема: нужно ввести имя файла заранее до начало работы с ним, но так не работает:

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
void main()
{
    system("chcp 1251");
    system("cls");
    cout << "Введите наименование файла:";
    char data_filename[15];
    cin >> data_filename;
 
    int size;
    person *persons = init(size,data_filename);
    do 
    {
        cout << "Возможные операции:" << endl
            << "1) Вывод массива" << endl
            << "2) Удаление людей с заданым возрастом" << endl
            << "3) Добавление людей" << endl
            << "4) Выход" << endl
            << "Ваш выбор: ";
        int selection;
        cin >> selection;
        switch (selection)
        {
        case 1:
//          init_load(size);
            print(persons,size);
            save_to_file(persons,size,data_filename);
            break;
        case 2:
            init_load(size,data_filename);
            delete_age(persons,size);
            save_to_file(persons,size,data_filename);
            break;
        case 3:
            init_load(size,data_filename);
            add_persons(persons,size);
            save_to_file(persons,size,data_filename);
            break;
        case 4:
            return;
        default:
            cout << "Команда неопознана!" << endl;
        }
    } while (true);
}
Ругается на file_exists!

А вот так работает:
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
const char data_filename[] = "f.dat"; //Имя файла
 
 
person *init(int &size)
{
    if (file_exists(data_filename))
    {
        cout << "Выберите способ инициализации:" << endl
            << "1) Создать новый файл (удалится старый файл)" << endl
            << "2) Считывание данных из файла" << endl
            << "Вариант: ";
        int selection;
        cin >> selection;
        while (!(selection == 1 || selection == 2))
        {
            cout << "Неверный выбор!" << endl
                << "Вариант: ";
            cin >> selection;
        }
        if (selection == 1)
        {
            remove(data_filename); //Удаленее файла с заданным именем
            return init_new(size);
        } else
            return init_load(size);
    } else
        return init_new(size);
}

Функция file_exests:
C++
1
2
3
4
5
//Проверка на существование файла
bool file_exists(const char *filename)
{
    return _access(filename,0) != -1;
}
Что нужно сделать что бы первый вариант функции стал рабочим?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2013, 19:23     Ввод имени файла и FileExists
Посмотрите здесь:

C++ Ввод имени для создаваемого файла
Ввод имени файла с клавиатуры C++
Вывод на экран имени переменной(имени файла, и тд.) C++
C++ ввод имени пользователя и пароль
C++ Ввод/вывод имени и пути файла, а также защита от дурака
C++ Ввод имени входного/выходного файла с клавиатуры (fstream)
Не работает ввод имени файла через fget и открытие через fopen C++
C++ Ввод имени файла и текста с консоли

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru