C++ 如何从.txt文件解析向量列表
我有一个项目,我必须从一个.txt文件中读取一个向量列表并对其进行解析。我有向量列表显示在屏幕上,但我不知道如何解析它C++ 如何从.txt文件解析向量列表,c++,C++,我有一个项目,我必须从一个.txt文件中读取一个向量列表并对其进行解析。我有向量列表显示在屏幕上,但我不知道如何解析它 #include <iostream> #include <cstring> #include <fstream> #include <conio.h> using namespace std; int main() { ifstream vl; vl.open("PIXA.txt"); char ou
#include <iostream>
#include <cstring>
#include <fstream>
#include <conio.h>
using namespace std;
int main() {
ifstream vl;
vl.open("PIXA.txt");
char output[100];
if (vl.is_open()) {
while (!vl.eof()) {
vl >> output;
cout << output;
}
vl >> output;
cout << output;
}
cin.ignore();
cin.get();
vl.close();
return 0;
}
所以,这里有两件事可以帮助你 首先,
std::getline
可以采用可选的分隔符参数。这很方便,因为矩阵由J
分隔
std::string line;
std::getline(in, line, 'J')
这将使行
为空(对于文件中的第一个条目),或者使用包含一组空格分隔整数的长字符串。请注意,std::getline
将从流中提取分隔符,但不会将其添加到字符串参数中,因此在解析整数位时,不需要担心J
您可以将其输入到一个std::stringstream
,然后像这样拉出循环中的所有整数:
std::vector<int> matrix;
std::stringstream ss(line);
int i;
while (ss >> i)
matrix.push_back(i);
非常简单,可以生成一个向量向量,以后在应用程序中很容易使用。文件是什么样子的?一个3x3矩阵列表。“它不能粘贴在这里。”Davidwardsjr。“它不能粘贴在这里。”使用与代码相同的格式样式。如果你没有纯文本文件,你问的问题就错了。我有一个纯文本文件。我需要从中阅读。在文本文件中,我有11个3x3矩阵需要解析。抱歉,伙计们。我已经发布了文件的外观。老实说,我不知道从哪里开始解析。我希望在这方面能被指出正确的方向。
std::vector<int> matrix;
std::stringstream ss(line);
int i;
while (ss >> i)
matrix.push_back(i);
while (std::getline(in, line)) { /* ... */ }