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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Frukt XD
0 / 0 / 0
Регистрация: 17.07.2015
Сообщений: 11
#1

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

21.07.2015, 13:42. Просмотров 201. Ответов 4
Метки нет (Все метки)

Есть кусок программы, чтение ее настроек функция:
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     Создать файл с настроками и считать их
Посмотрите здесь:

Одномерный массив Х(15) считать из файла *.txt (файл создать самим). Найти: Максимальный из отрицательных элементов и поменять его местами с после - C++
#include &lt;iostream.h&gt; #include &lt;fstream.h&gt; void read_matr(double X) { ifstream f(&quot;matr.txt&quot;); for(int i=0; i&lt;15; i++){ f&gt;&gt;X; } ...

Как считать файл построчно записывая в другой файл? - C++
1) Данная программа считывает только первую строку следующие строки она не трогает. Хотел решить данную проблему через while, но не знаю...

Файл: Считать файл TWO, удвоив все буквы «а». - C++
1. Считать файл TWO, удвоив все буквы «а». 2. Прочитать файл TWO и вывести его задом наперёд. 3. В файлах f1 и f2 целые числа...

Считать файл с картинкой - C++
Здравствуйте! Задача: открыть файл 1.bmp, считать содержимое в буфер, а потом записать в 2.bmp. Проверьте, пожалуйста, мой код! Что...

Считать текстовый файл из интернета - C++
Здравствуйте. Подскажите пожалуйста как считать все данные из текстового файла, который находиться в сети. Есть файл,...

Считать весь файл в строку - C++
Делаю так: string name_of_file=&quot;abba.txt&quot;; ifstream fin(name_of_file); if(!fin.is_open()){ ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lss
921 / 851 / 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2015, 14:20     Создать файл с настроками и считать их
Еще ссылки по теме:

как считать весь файл ? - C++
char buff; ifstream fin(&quot;/Users/Vitaly/Desktop/laba2/laba2/list.txt&quot;,ios_base::in); fin&gt;&gt;buff,50; cout&lt;&lt;buff; ...

Как считать файл с табличкой? - C++
Добрый вечер! Подскажите пожалуйста : у меня есть файл в формате txt, в котором находится табличка (с числами) 15*5. Его нужно считать!...

Как считать и записать в файл? - C++
Доброго времени суток. Вопрос вот в чем. Реализую md5 алгоритм шифрования и финальным штрихом является считывание из файла незашифрованного...

считать файл по слову с разделителями \t \n - C++
Всем привет. Каким способом можно считать файл по слову с разделителями: табуляция и новая строка? К примеру, в файле 5 слов в одной...

Считать csv файл полностью - C++
Добрый день, считываю csv файл вот так int i=0; while(!creat.eof()) { creat&gt;&gt;n; i++; ...

Подскажите как побайтно считать файл - C++
Читаю файл побайтно seeker=fseek(olddbf,0, SEEK_SET); numread = fread(list, sizeof(char), 16, olddbf); после того как один раз...


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

Или воспользуйтесь поиском по форуму:
lss
921 / 851 / 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     Создать файл с настроками и считать их
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru