C ++从文本文件读取字符到动态分配的数组

时间:2014-11-16 18:11:10

标签: c++ arrays heap

我对C ++比较陌生,我试图从文本文件中读取sequenceofchars到动态分配的char数组。我的代码如下:

while (file.get(c))
{
    if (c =='\n')
        continue;

    char *temp = new char[i++];
    arrayA = new char[i++];
    arrayA[i] = c;
    delete [] arrayA;
    arrayA = temp;
}

文本文件格式如下:

>NameOfChars
sequenceofchars

这显然是非常可怕的,但我一直在努力弄清楚人们用来完成这个的确切方法。我知道Vector类,但我不确定如何使用它,如果这是在堆上重新分配数组的首选方法。任何帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:1)

我认为你一定要看一下vector类,因为它可以使你的代码更清晰。这是一个如何使用它的小型(未经测试)代码示例:

#include <vector>

std::vector<char> my_vector;

while (file.get(c))
{
    if (c =='\n')
        continue;

    my_vector.push_back(c);
}

有关详细信息,请查看http://www.cplusplus.com/reference/vector/vector/push_back/

答案 1 :(得分:0)

原始数组不是动态分配的;因此使用像矢量的STL容器会更好。

ifstream inf;
char c;
vector<char> charVec;

while (inf >> c)
{
    charVec.push_back(c);
}