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

C++ Reading Characters from Text File to Dynamically Allocated Array

本文关键字:动态分配 数组 字符 读取 文本 文件 C++      更新时间:2023-10-16

我对C++相对较新,我正在尝试将文本文件中的序列读取到动态分配的字符数组中。我的代码如下:

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 类,但如果这是在堆上重新分配数组的首选方法,我不确定如何使用它。任何帮助将不胜感激。谢谢。

我认为你绝对应该看看向量类,因为它会让你的代码更干净。下面是如何使用它的一个小(未经测试的)代码示例:

#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/

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

ifstream inf;
char c;
vector<char> charVec;
while (inf >> c)
{
    charVec.push_back(c);
}