Создание двусвязного списка с рядом функций
Помогите написать программу на двусвязный список с функциями на: -Вставку в начало -вставку в конец -вставку в определенную позицию по условию -извлечение из конца -извлечение из конца -сортировку пузырьком Основная моя беда в том, что нужно сделать файловый ввод и вывод. Если не жалко времени
Ответы (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;