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

Создать файл с настроками и считать их - C++

Восстановить пароль Регистрация
 
Frukt XD
0 / 0 / 0
Регистрация: 17.07.2015
Сообщений: 11
21.07.2015, 13:42     Создать файл с настроками и считать их #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
int settings(int *life_time, int *cur_yea, int *cur_mon, int *cur_day)
{
    char slovo[100];
    float fail_long = 0;
    int char_vol = 0;
 
    retime();
    ifstream settings_file("settings.txt");
    if (!settings_file.is_open())
    {
        log("Failed\nLoad default settings");
        create();
        
    }
    settings_file.seekg(0);//переход в начало файла 
    while (char_vol!=4)
    {
        settings_file >> slovo;
        char_vol++;
    }
    settings_file.seekg(0, ios::end);
    fail_long = settings_file.tellg();
 
    if (fail_long == 0 || char_vol != 4)
    {
        return 0;
    }
 
    settings_file.seekg(4);
    settings_file >> *life_time;
    settings_file >> *cur_day;
    settings_file >> *cur_mon;
    settings_file >> *cur_yea;
 
 
    settings_file.close();
    return 1;
}
основная задача этой функции считать настройки из файла settings.txt ,если она его не находит то создает его по зарание заданному шаблону

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
void create()
{
    int parametrs[4];
    parametrs[0] = 5;
    parametrs[1] = t_m->tm_mday + 7;
    if (parametrs[1]>30)
    {
        parametrs[1] - 30;
        parametrs[2] = t_m->tm_mon + 1;
    }
    else
    {
        parametrs[2] = t_m->tm_mon;
    }
    parametrs[3] = t_m->tm_year;
 
    ofstream fout("settings.txt"); // создаём объект класса ofstream для записи и связываем его с файлом cppstudio.txt
    fout <<"0\n";
    for (int i = 0; i < 4; i++)
    {
        if (i == 3)
        {
            fout << parametrs[i]; // запись строки в файл
        }
        else
        {
            fout << parametrs[i] << " "; // запись строки в файл
        }
 
    }
    fout.close(); // закрываем файл
 
}
Вид файла settings.txt
0
5 28 6 115

Имеется 2 проблемы
1)Если файл не найден , программа создает его но не читает. А читает только после перезапуска программы.
2)Не знаю как сделать так чтобы не считывая первую строчку , программа переходила на 2ую строку и считывала ее по словам т.е до пробела
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2015, 13:42     Создать файл с настроками и считать их
Посмотрите здесь:

Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке C++
Файл: Считать файл TWO, удвоив все буквы «а». C++
C++ создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы.
Одномерный массив Х(15) считать из файла *.txt (файл создать самим). Найти: Максимальный из отрицательных элементов и поменять его местами с после C++
как считать весь файл ? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
21.07.2015, 14:02     Создать файл с настроками и считать их #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Frukt XD Посмотреть сообщение
1)Если файл не найден , программа создает его но не читает. А читает только после перезапуска программы.
C++
1
2
3
4
5
6
7
    ifstream settings_file("settings.txt");
    if (!settings_file.is_open())
    {
        log("Failed\nLoad default settings");
        create();
        settings_file.open("settings.txt", ios::in);
    }
Добавлено через 4 минуты
Цитата Сообщение от Frukt XD Посмотреть сообщение
2)Не знаю как сделать так чтобы не считывая первую строчку , программа переходила на 2ую строку
C++
1
settings_file.ignore(100, '\n');
Добавлено через 2 минуты
Цитата Сообщение от Frukt XD Посмотреть сообщение
и считывала ее по словам т.е до пробела
Оператор >>.
Frukt XD
0 / 0 / 0
Регистрация: 17.07.2015
Сообщений: 11
21.07.2015, 14:15  [ТС]     Создать файл с настроками и считать их #3
А по аналогии с >> есть чтение именно целой строки ?
sashatref
75 / 75 / 27
Регистрация: 21.05.2015
Сообщений: 257
Завершенные тесты: 1
21.07.2015, 14:19     Создать файл с настроками и считать их #4
Frukt XD, посмотрите в сторону
C++
1
std::getline
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
21.07.2015, 14:20     Создать файл с настроками и считать их #5
Цитата Сообщение от Frukt XD Посмотреть сообщение
А по аналогии с >> есть чтение именно целой строки ?
Не понял вопрос. >> читает до пробела, getline() читает строку (по умолчанию до '\n').
http://www.cplusplus.com/reference/i...tream/getline/
Yandex
Объявления
21.07.2015, 14:20     Создать файл с настроками и считать их
Ответ Создать тему
Опции темы

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