C++ как читать файл и реверсировать связанный список с помощью рекурсии, а затем выводить
Я пытаюсь использовать ArgumentManager.h для чтения входного и выходного файлов, но все же некоторые проблемы здесь, мой код не может успешно прочитать файл и использовать обратный связанный список. Кто-нибудь может выяснить, какая часть неправильна, и помочь мне исправить ее? У меня есть как входной, так и выходной файл, просто нужно прочитать их оба, а затем использовать входной файл для обратного вывода.
Входной файл
! awesome is Joseph guess I
И выходной файл
I guess Joseph is awesome!
Что я уже пробовал:
<pre>#include <fstream> #include "ArgumentManager.h" #include <iostream> using namespace std; struct Node { string data; struct Node* next; Node(string data) { this->data = data; next = NULL; } }; struct LinkedList { Node* head; LinkedList() { head = NULL; } Node* reverse(Node* node) { if (node == NULL) return NULL; if (node->next == NULL) { head = node; return node; } Node* node1 = reverse(node->next); node1->next = node; node->next = NULL; return node; } void print() { struct Node* temp = head; while (temp != NULL) { cout << temp->data << " "; temp = temp->next; } } void push(string data) { Node* temp = new Node(data); temp->next = head; head = temp; } }; int main(int argc, char **argv) { if (argc < 2) { std::cout << "asd" << std::endl; } ifstream fin; ofstream fout; ArgumentManager am(argc, argv); string inputFileName = am.get("input"); string outputFileName = am.get("output"); fin.open(inputFileName); fout.open(outputFileName); while(fin) { string line; getline(fin, line); } LinkedList (); return 0; }