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

Не знаю как реализовать чтение из файла/запись в файл с особыми условиями - C++

Восстановить пароль Регистрация
 
RareScrap
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 84
12.07.2014, 16:25     Не знаю как реализовать чтение из файла/запись в файл с особыми условиями #1
Добрый день!

У меня есть файл file.txt с таким содержанием:

C++
1
2
3
4
5
6
xxx         /x
    qqq
zzz         /z
    aaa
ccc         /c
    rrr
Программа должна сделать две вещи:
1) Выводить "подкатегорию" согласно моему запросу (например: Я ввел "ссс", значит после этого должна вывестись строка "rrr")
2) Дописывать введенный запрос в файл через 4 символа табуляции следующим образом
C++
1
2
3
4
5
6
xxx         /x
    qqq         xxx
zzz         /z
    aaa         zzz
ccc         /c
    rrr         ccc

Но что если подкатегория будет слишком длинной? Значит "xxx" будет расположен дальше "zzz" и "ccc"
C++
1
2
3
4
5
6
xxx         /x
    qqqqqq          xxx
zzz         /z
    aaa         zzz
ccc         /c
    rrr         zzz
Как написать программу, выполняющую мою задачу? Как сделать так, чтобы все было в одном столбце?

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

C++ запись в файл и чтение из файла
чтение из файла и запись в файл. C++
Чтение из файла, запись в файл C++
запись в файл и чтение из файла C++
Запись в файл, чтение из файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
12.07.2014, 16:37     Не знаю как реализовать чтение из файла/запись в файл с особыми условиями #2
RareScrap, используйте вместо табуляции setw() из заголовочного файла #include <iomanip>
C++
1
std::cout << std::setw(4) << "ccc";
Посчитайте количество элементов выводимой строки и изменяйте аргумент setw() соответственно.
RareScrap
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 84
12.07.2014, 17:16  [ТС]     Не знаю как реализовать чтение из файла/запись в файл с особыми условиями #3
Не могли бы вы написать пример программы? Я сейчас попробовал использовать setw(), но не получил желаемый результат

Добавлено через 28 минут
И почему, если попытаться вывести строку из пяти символов в поле длиннойю в три символа (setw(3)), то выводятся все пять символов строки?
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
12.07.2014, 17:38     Не знаю как реализовать чтение из файла/запись в файл с особыми условиями #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
RareScrap, забудьте про setw(). В вашем случае лучше делать поиск и перезаписывать файл.
Остаётся лишь уследить за длиной строк. Я установил отступ в 10 пробелов, в обычном случае.
Можно увеличить при надобности.
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
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
 
int main()
{
    std::ifstream output("file.txt");
    
    if(output)
    {
        std::vector<std::string> arr;
        std::string str;
        while(getline(output, str)) { arr.push_back(str); }
        std::cout << "Type query: ";
        std::cin >> str;
        for(unsigned i = 0; i < arr.size(); i++)
        {
            if(!arr[i].find(str))
            {
                if(arr[i + 1].size() - 4 > 3)
                    arr[i + 1] += std::string(10 - (arr[i + 1].size() - 7), ' ') + str;
                else
                    arr[i + 1] += std::string(10, ' ') + str;
            }
        }
        output.close();
        std::ofstream input("file.txt");
        if(input)
        {
            for(unsigned i = 0; i < arr.size(); i++)
                input << arr[i] << std::endl;
            input.close();
        }
        else
            perror("Error");
    }
    else
        perror("Error");
    
    return 0;
}
RareScrap
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 84
12.07.2014, 17:41  [ТС]     Не знаю как реализовать чтение из файла/запись в файл с особыми условиями #5
Огромное спасибо! Наконец-то разберусь
Yandex
Объявления
12.07.2014, 17:41     Не знаю как реализовать чтение из файла/запись в файл с особыми условиями
Ответ Создать тему
Опции темы

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