c++读取txt文本数据放入vector
时间: 2023-10-12 10:17:51 浏览: 86
可以用以下代码将文本数据读取到vector中:
```c++
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
int main() {
std::vector<std::string> lines;
std::ifstream infile("data.txt");
std::string line;
while (std::getline(infile, line)) {
lines.push_back(line);
}
infile.close();
// 打印 vector 中的数据
for (const auto& l : lines) {
std::cout << l << std::endl;
}
return 0;
}
```
其中,`data.txt`是要读取的文本文件名,`lines`是存储读取数据的vector。`std::getline()`函数可以从文件流中读取一行数据,并将其存入字符串变量`line`中。`push_back()`函数将该字符串添加到vector中。最后,遍历vector并输出其中的所有字符串。
相关问题
c++读取txt矩阵数据放入vector
可以使用C++的文件输入输出流和vector容器来读取txt矩阵数据并存储到vector容器中,示例代码如下:
```c++
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
ifstream fin("matrix.txt"); // 打开文件
vector<vector<int>> matrix; // 定义二维vector容器
int rows = 0, cols = 0;
while (!fin.eof()) { // 读取文件直到文件末尾
string line;
getline(fin, line); // 读取一行数据
if (line.empty()) break; // 如果为空行则跳出循环
vector<int> row; // 定义一维vector容器
int num;
istringstream iss(line); // 使用istringstream将字符串转换为数字
while (iss >> num) {
row.push_back(num); // 存储每一行的数据到一维vector容器中
}
matrix.push_back(row); // 存储每一行的数据到二维vector容器中
rows++; // 统计行数
if (cols == 0) cols = row.size(); // 统计列数
}
fin.close(); // 关闭文件
// 输出矩阵数据
cout << "matrix:" << endl;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
在该示例代码中,我们首先使用文件输入输出流打开txt文件,然后定义一个二维vector容器来存储矩阵数据,接着使用while循环读取文件中的每一行数据,并将每一行的数据存储到一个一维vector容器中,最后将每一行的数据存储到二维vector容器中。在读取数据的过程中,使用istringstream来将字符串转换为数字,并统计矩阵的行数和列数。最后输出读取到的矩阵数据。
c++读取txt文本数据
读取txt文本数据可以使用C++中的文件流,具体步骤如下:
1. 打开文件流,可以使用 ifstream 类:
```cpp
#include <fstream>
using namespace std;
ifstream infile("filename.txt");
```
2. 读取文件内容,可以使用 getline 函数:
```cpp
string line;
while (getline(infile, line))
{
// 处理每行数据
}
```
3. 关闭文件流:
```cpp
infile.close();
```
完整的代码示例:
```cpp
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream infile("data.txt");
if (!infile.is_open())
{
cout << "Failed to open file!" << endl;
return 0;
}
string line;
while (getline(infile, line))
{
cout << line << endl;
}
infile.close();
return 0;
}
```
其中,data.txt 是要读取的文件名,可以根据实际情况进行修改。