Создание двусвязного списка с рядом функций

Помогите написать программу на двусвязный список с функциями на: -Вставку в начало -вставку в конец -вставку в определенную позицию по условию -извлечение из конца -извлечение из конца -сортировку пузырьком Основная моя беда в том, что нужно сделать файловый ввод и вывод. Если не жалко времени


Ответы (1 шт):

Автор решения: el_madcapo

Ну если Основная беда в файловом вводе/выводе, то вот кусочек с предположением, что ваша программа запускается из консоли в виде your_awesome_program input_file.txt output_file.txt:

#include <fstream>
#include <iostream>

bool readFile(char** argv, YourCustomList& list)
{
    std::string fileName = argv[1];
    std::fstream file;
    file.open(inputFileName);

    if (!file.is_open()) {
        std::cout << "file wasn't open" << std::endl;
        return false;
    }
    std::stringstream ss;
    ss.clear();
    ss.str("");

    int m; //указываем количество и типы переменных
    std::string input = "";

    // считываем построчно из предположения что одна
    // строка  - одно значение
    while (getline(file, input))
    {
        ss.str(input);
        if (!(ss >> m))
            break;
        // вставляем считанное значение в ваш list
        list.insert(m);
        ss.clear();
        ss.str("");
        input.clear();
    }
    return true; //Happy End!
}

void writeFile(YourCustomList const &list, char** argv)
{
    std::string outputFileName = argv[2];
    std::ofstream fout(outputFileName);

    // записываем построчно значения из вашего списка list
    for (auto& number : list) {
    fout << number  << '\n';
    }
    std::cout << std::flush;
    fout.close();
}

только int main() надо записать как: int main (int argc, char** argv) и будет вам счастье.

в main():
вначале создаете свой список;
потом запускаете readFile();
затем какие-то промежуточные операции;
в конце writeFile();
и return 0;
→ Ссылка