Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从.txt文件解析向量列表_C++ - Fatal编程技术网

C++ 如何从.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

我有一个项目,我必须从一个.txt文件中读取一个向量列表并对其进行解析。我有向量列表显示在屏幕上,但我不知道如何解析它

#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)) { /* ... */ }