2014-08-31 49 views
-3

正如我的标题所指定的,我需要读取文本文件(C++)中的信息。 我看到很多例子涉及有组织数字或字符串列表的文本文件,但对我来说,我需要安排如下文件(example.txt文件)中提取信息:阅读文本文件中的特定信息

// This is the begin of the text file: 
Here_the_coordinates_are_going_to_be_listed 
Start 
x y z 
0 0 0 
1 0 0 
1 1 0 
0 1 0 
End 

而且我会非常读并将其存储在“的std ::载体”,载“开始”之间的信息“结束”,使得矩阵A N×3矢量:

matrix[i][j] = 0 0 0 
       1 0 0 
       1 1 0 
       0 1 0 

我给看看教程和我的一切到目前为止是:

std::array<std::array<int , 5>, 7> matrix; 

    std::ifstream file("../test/matrix.txt"); 

    for (unsigned int i = 0; i < 7; i++) 
    { 
    for (unsigned int j = 0; j < 5; j++) { 
     file >> matrix[i][j]; 
    } 

它允许我读取只写入数字的文件。

非常感谢你,

达里奥

+0

这是你所有的代码? – 2014-08-31 19:48:23

+0

不,我能够读取和存储矩阵,如果文件很简单,但在这种情况下,我不知道如何填充文本文件第5行的矩阵。 – dario 2014-08-31 20:15:08

回答

0

去看看这里:如何读/写文件http://www.cplusplus.com/doc/tutorial/files/,那么你可以通过该文件,并查找第一个相关的字符(或最后irelvant字符,就像本例中的z一样),然后循环遍历所有相关字符并将它们存储在二维数组中(如果不知道列表的长度,也可能是动态的)

编辑:

所以这里是一个来自该网站如何从上面的链接中读取文本文件的例子(我已更新,我对此非常抱歉)因此,基本上这个想法如下所示,打开文件并那么你只需循环遍历每一行(我认为你也可以使用getchar来替代字符,这对你来说可能更好,但我不太确定它的工作原理是多么的令人兴奋,你只需要解决这个问题。有点,我相信你会得到它:))因此,这行只是保存在一个字符串,然后用cout打印出来,但你可以操纵字符串进一步找到你的数据,我希望这有助于!随意再问一次,如果我不够清楚

// reading a text file 
#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 

int main() 
{ 
    string line; 
    ifstream myfile ("example.txt"); 
    if (myfile.is_open()) 
    { 
     while (getline (myfile,line)) 
     { 
      cout << line << '\n'; 
     } 
     myfile.close(); 
    } 

    else cout << "Unable to open file"; 

    return 0; 
} 
+0

非常感谢您的回答,当然这将是动态的。目前不幸的是,这个教程并没有帮助我。当然,由于我的技能很少,但我甚至找不到应该帮助我的部分。你能更具体一点吗? – dario 2014-09-01 09:36:00

+0

我很抱歉!我意外地给了你错误的链接!完全是我的错!但我更新了链接和答案,希望它现在有所帮助!随时再问一次,我很抱歉再次! – jundl77 2014-09-02 13:32:52

+0

没关系,我也有我的责任心,因为我的问题不清楚。顺便说一下,如果你能帮助我多一点,我将不胜感激。其实我的问题就在那里...你说我必须四处乱跑。从一开始我就能读到自己想要的行(用xyz和在.txt文件中用End结尾的行),但是我卡在那里,因为我没有找到存储行号的方法,所以我无法读取并将我的坐标存储到矩阵中。 BR PS:我阅读了教程。 PS2:我可以发布我的程序,如果它可以帮助 – dario 2014-09-02 18:10:35