怎么把vector写入文件
时间: 2024-05-03 19:19:36 浏览: 7
你可以使用文件流 ofstream 和迭代器来将 vector 写入文件。下面是一个示例代码:
```c++
#include <fstream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::ofstream outputFile("output.txt");
// 使用迭代器将 vector 写入文件
std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(outputFile, " "));
return 0;
}
```
这个程序将 vector 中的内容写入到名为 "output.txt" 的文件中。每个元素之间用空格分隔。你可以根据需要更改分隔符。
相关问题
用c++将vector写入txt文件
以下是将一个整数向量写入文本文件的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <vector>
int main() {
// 创建整数向量
std::vector<int> v {1, 2, 3, 4, 5};
// 打开文件
FILE* fp = fopen("output.txt", "w");
if (fp == NULL) {
printf("无法打开文件\n");
exit(EXIT_FAILURE);
}
// 将向量中的每个元素写入文件
for (int i = 0; i < v.size(); i++) {
fprintf(fp, "%d ", v[i]);
}
// 关闭文件
fclose(fp);
return 0;
}
```
在上面的代码中,我们首先创建了一个整数向量,然后打开了一个名为`output.txt`的文本文件。接下来,我们使用`fprintf`将向量中的每个元素写入文件。最后,我们关闭了文件并退出程序。
将自定义类的vector 容器以覆盖的方式写入文件
要将自定义类的vector容器以覆盖的方式写入文件,可以按照以下步骤进行操作:
1. 打开文件,使用输出流覆盖写入模式(ios::out | ios::trunc)打开文件。如果文件不存在,将创建一个新文件。
```c++
#include <fstream>
#include <vector>
using namespace std;
class MyClass {
// 定义自定义类
};
int main() {
vector<MyClass> myVector;
// 假设已经将数据存储在 myVector 中
ofstream out("file.txt", ios::out | ios::trunc); // 打开文件
if (!out.is_open()) { // 判断文件是否打开成功
cout << "Failed to open file!" << endl;
return 1;
}
// 将 myVector 中的数据写入文件
for (auto it = myVector.begin(); it != myVector.end(); ++it) {
out << it->getData() << endl; // 假设自定义类 MyClass 中有函数 getData() 返回需要写入文件的数据
}
out.close(); // 关闭文件
return 0;
}
```
2. 将 vector 容器中的数据按照需要写入文件。这里假设自定义类 MyClass 中有函数 getData() 返回需要写入文件的数据,可以使用迭代器遍历 vector 容器中的数据,并将其写入文件。
```c++
// 将 myVector 中的数据写入文件
for (auto it = myVector.begin(); it != myVector.end(); ++it) {
out << it->getData() << endl;
}
```
3. 关闭文件。写入完成后一定要关闭文件,否则可能会发生数据丢失或不完整的情况。
```c++
out.close();
```
注意:这种方式是覆盖写入模式,如果需要追加写入,可以使用输出流追加写入模式(ios::out | ios::app)打开文件,然后在文件末尾写入数据。