一些从txt文件中读取的方法

时间:2013-07-26 20:38:51

标签: c++ file-io

我正在尝试学习一些用C ++读取文件的技巧,我想出了这个例子。

假设以下是我想要从

中读取的txt文件的内容
A
1 2 3
4 5 6
7 8 9

B
1 2 3
4 5 6
7 8 9

所以,我想在这里做的是,如果我们读A,那么我们开始从下面读取矩阵A并将它们存储到[i] [j]中。对于B.同样如此。在其他情况下,我们将它们视为例外,我们现在不在乎。

现在我的问题是混合阅读。我知道如何读取整数以及如何分别从文件中读取字符串,如愚蠢的方式while(fin>>it)。但是,任何人都可以告诉我这种混合阅读的快速方式,我不必声明几个读取变量(类型),如字符串和int?

例如,我只知道如何读取整行中的整数并且不知道换行符处理程序,这意味着我不知道如何识别是否到达行尾或类似的东西:< / p>

    ifstream fin;
fin.open(infilename);
int it;
int arr[3][3];
int i=0, j=0;
while(fin>>it){
    arr[i][j]=it; 
      `\\I am confused at this place and don't know how to write the condition`
}
fin.close();

此外,既然有char和int类型,我是否必须声明char?以及fin>>char如何真正起作用?通过字符串或其他东西读取char? 如果有人可以指导我,我真的很感激!谢谢!

1 个答案:

答案 0 :(得分:0)

您不必担心换行符&gt;&gt;跳过空白和换行符。但是,如果您需要不同的数据类型,将fin&gt;&gt;它放入while条件会使事情变得复杂。你可以改为读入一个字符来表示每个矩阵,然后在从fin到矩阵的循环中读取:

char c;
int mat[3][3];

while (fin>>c){
    //save c somewhere
    fin>>mat[0][0]>>mat[0][1]>>mat[0][2];
    fin>>mat[1][0]>>....;
    fin>>mat[2][0]>>....;
    //store mat 
}