如何对多个vector<string>数据进行文件读写
时间: 2024-04-09 12:28:15 浏览: 118
要对多个`vector<string>`数据进行文件读写,你可以使用循环来处理每个`vector<string>`并进行读取和写入操作。下面是一个示例代码,演示如何对多个`vector<string>`数据进行文件读写:
```cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
void writeDataToFile(const std::vector<std::string>& data, const std::string& filename) {
std::ofstream outputFile(filename);
if (outputFile.is_open()) {
for (const auto& str : data) {
outputFile << str << std::endl;
}
outputFile.close();
std::cout << "数据写入文件 " << filename << " 完成!" << std::endl;
} else {
std::cout << "无法创建输出文件 " << filename << "!" << std::endl;
}
}
void readDataFromFile(std::vector<std::string>& data, const std::string& filename) {
std::ifstream file(filename);
if (file.is_open()) {
std::string line;
while (std::getline(file, line)) {
data.push_back(line);
}
file.close();
std::cout << "文件 " << filename << " 读取完成!" << std::endl;
} else {
std::cout << "无法打开文件 " << filename << "!" << std::endl;
}
}
int main() {
std::vector<std::vector<std::string>> allData;
// 生成示例数据
std::vector<std::string> data1 = {"Hello", "World"};
std::vector<std::string> data2 = {"C++", "Programming"};
std::vector<std::string> data3 = {"File", "IO"};
// 将数据存储到allData
allData.push_back(data1);
allData.push_back(data2);
allData.push_back(data3);
// 写入数据到文件
for (int i = 0; i < allData.size(); i++) {
std::string filename = "output" + std::to_string(i) + ".txt";
writeDataToFile(allData[i], filename);
}
// 从文件中读取数据
std::vector<std::vector<std::string>> readData;
for (int i = 0; i < allData.size(); i++) {
std::string filename = "output" + std::to_string(i) + ".txt";
std::vector<std::string> tempData;
readDataFromFile(tempData, filename);
readData.push_back(tempData);
}
// 输出读取的数据
for (const auto& data : readData) {
std::cout << "文件内容:" << std::endl;
for (const auto& str : data) {
std::cout << str << std::endl;
}
std::cout << std::endl;
}
return 0;
}
```
上述代码将生成三个`vector<string>`数据,并将它们存储在`allData`中。然后,它使用循环将每个`vector<string>`写入不同的文件中,文件名按照"output0.txt"、"output1.txt"、"output2.txt"的格式命名。
接下来,它再次使用循环从文件中读取数据,并将每个`vector<string>`存储到`readData`中。最后,它输出读取的数据。
请确保在运行代码之前,创建一个新的空文件夹作为输出文件的目录。
阅读全文