使用 ifstream 将文本文件中的数字读入 std::vector

发布于 2024-11-03 12:39:21 字数 316 浏览 3 评论 0原文

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

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

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

I have a read function which takes numbers from a text file and stored them into a data structure. I have made this function.

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

I am trying to add them into a vector structure, is this code correct??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

叶落知秋 2024-11-10 12:39:21

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

vector <int> v;
int n;

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

其中 f 是 ifstream。

No, it isn't. The canonical way would be:

vector <int> v;
int n;

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

where f is an ifstream.

大海や 2024-11-10 12:39:21

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

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

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

No, if you write you code this way the compilation will fail.
Maybe you can allocate enough space for the vector and then store the date the ifstream read.

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

while((iIndex < v.size()) && (in >> v[iIndex]))
{
    ++iIndex;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文