-4

Im new to C++ and I have decided to do a little car project as something to do.

Basically I want to store Cars in a text file and then display them, which I have done. The problem is that I want the array of cars to be 30 so when I run the program it prints random numbers to fill up the spare spaces in the array.

How do I go about fixing this. Someone said something about a pointer and have a number at the top of the text file so it can work out how many cars there are. Also someone mentioned a Dynamic Array.

Please help. Been stuck on this for a week now.

4

2 回答 2

2

C++更喜欢使用

std::vector<Car> myCars

持有多个Car实例。

那你就

myCars.push_back(aCarIGotFromAFile)

它会根据需要增长。

于 2013-04-26T16:31:03.333 回答
0

“基本上我想将汽车存储在一个文本文件中,然后显示它们,我已经完成了”

很好,你已经完成了 90% 的项目!

“汽车要 30 辆,所以当我运行程序时,它会打印随机数来填充数组中的空闲空间”是问题所在。

“有人说了一些关于指针的事情”很好,有人向您展示了一条危险但令人敬畏的道路。

“也有人提到了动态数组”这也是一个很好的建议。
让我们把所有这些放在一起

1)您说您在文件中存储了大约 30 辆汽车。现在您要做的是在文件中存储其他信息,例如汽车总数、汽车制造商等。

现在,当您完成此操作后,您必须检索信息并将它们存储在数组中。

您可能正在使用 ifstream(或 istream)或等效的文件从文件中读取。现在你要做的是创建一个容器来保存这些值。

ifstream iflie("cars.txt");
ifile >> TotalCars;

在 C++ 中,最喜欢的容器(使用 std 命名空间)是:

template < class T, class AllocationClass = allocator<T> > 
class vector

这是一个模板类,您可以在其中声明一个对象

std::vector<std::string> cars(TotalCars); /*this should be 30*/

现在当你处理数组时,同样的事情也适用于向量。[]像这样使用cars[i]。现在,当您有更多汽车时,请使用 cars.push_back(element)。和你的好去。

于 2013-04-26T16:57:35.330 回答