使用ifstream从文本文件中读取数字到std :: vector <int> </int>

时间:2011-04-25 16:06:47

标签: file vector ifstream

我有一个读取函数,它从文本文件中获取数字并将它们存储到数据结构中。我已经完成了这个功能。

void VectorIntStorage::read(ifstream &in)
{
    if(in.is_open())
    {
        for (int i = 0; in && i < n; ++ i) 
        {
            in >> vectorStorage<i>;
        }
    }
}

我正在尝试将它们添加到矢量结构中,这段代码是否正确?

2 个答案:

答案 0 :(得分:2)

不,不是。规范的方式是:

vector <int> v;
int n;

while( f >> n ) {
    v.push_back( n );
}

其中f是ifstream。

答案 1 :(得分:0)

不,如果以这种方式编写代码,编译将失败。 也许你可以为矢量分配足够的空间,然后存储ifstream读取的日期。

vector<int> v(MAX_SIZE);
int iIndex = 0;

while((iIndex < v.size()) && (in >> v[iIndex]))
{
    ++iIndex;
}