文件读取c++链表代码
时间: 2024-10-18 22:02:52 浏览: 32
在C++中,你可以使用文件流(fstream)来读取数据,并将数据存储到链表(如`std::list`或自定义链表结构)中。这里是一个简单的示例,假设我们有一个包含整数的文本文件,我们将每个整数添加到链表中:
```cpp
#include <iostream>
#include <fstream>
#include <list>
// 定义链表节点
struct ListNode {
int value;
ListNode* next;
ListNode(int v) : value(v), next(nullptr) {}
};
// 链表操作函数
ListNode* readFromFile(const std::string& filename) {
std::ifstream file(filename);
if (!file.is_open()) {
throw std::runtime_error("Failed to open the file");
}
ListNode* head = nullptr;
ListNode* current = nullptr;
int num;
while (file >> num) {
head = current = new ListNode(num); // 如果头节点为空,直接指向新节点
if (current->next != nullptr) {
current->next->prev = current; // 初始化前驱指针
}
}
file.close();
return head;
}
int main() {
try {
ListNode* listHead = readFromFile("numbers.txt"); // 假设numbers.txt文件存在并包含整数
// 打印链表元素
for (ListNode* node = listHead; node != nullptr; node = node->next) {
std::cout << node->value << " ";
}
delete listHead; // 释放内存
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << '\n';
}
return 0;
}
```
这个程序首先打开文件,然后逐行读取数字,将其转换为`ListNode`并添加到链表中。记得处理文件打开失败的情况,并在完成操作后关闭文件。
阅读全文