【问题标题】:C++ Pointers, Text Files and Dynamic ArraysC++ 指针、文本文件和动态数组
【发布时间】:2013-04-26 16:07:59
【问题描述】:

我是 C++ 新手,我决定做一个小汽车项目。

基本上我想将 Cars 存储在一个文本文件中,然后显示它们,我已经这样做了。问题是我希望汽车数组为 30,所以当我运行程序时,它会打印随机数来填充数组中的空闲空间。

我该如何解决这个问题。有人说了一些关于指针的事情,并在文本文件的顶部有一个数字,这样它就可以计算出有多少辆车。也有人提到了动态数组。

请帮忙。已经坚持了一周了。

【问题讨论】:

  • 贴一些代码来显示问题。
  • 你必须明白,当人们经常给你建议时,要么他们不理解问题,要么你不理解建议。由于您已经被困了一整周,请花一两分钟向我们展示您编写的代码。它将全面提高理解力。
  • 另外,不要认为有一些称为“指针”或“动态数组”的魔法可以解决您的问题。您已经拥有执行此操作的工具。最重要的是更好地了解您拥有的工具。

标签: c++ arrays file pointers dynamic


【解决方案1】:

C++更喜欢用

std::vector<Car> myCars

保存多个Car 实例。

那么你就

myCars.push_back(aCarIGotFromAFile)

它会根据需要增长。

【讨论】:

    【解决方案2】:

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

    很高兴你已经完成了 90% 的项目!

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

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

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

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

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

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

    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)。一切顺利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-12
      • 1970-01-01
      • 2017-07-03
      相关资源
      最近更新 更多