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