【问题标题】:Reading specific elements from a CSV file in C++从 C++ 中的 CSV 文件中读取特定元素
【发布时间】:2012-05-18 22:38:04
【问题描述】:

我正在尝试创建一个参考程序,我认为该程序将使用 Excel 电子表格来保存仅供阅读的信息。我希望用户能够从选项列表中选择一个主题,并将相应单元格中的信息反馈给他们。该程序是用 C++ 编写的。我的问题是,如何从我的程序中访问电子表格中的特定单元格?我对其进行了一些研究,并且发现我想将我的文件保存为 csv 并使用 fscanf 来读取内容,但我不知道如何做这部分。我用谷歌搜索并找到了这个帖子:

http://www.daniweb.com/software-development/cpp/threads/204808/parsing-a-csv-file-separated-by-semicolons

但我认为它会读取 CSV 中的所有数据?无论如何,据我所知。我只想提取特定的元素。这可能吗?

【问题讨论】:

  • 您必须阅读整个文件才能访问所需的元素(并忽略其余部分)

标签: c++ csv file-read


【解决方案1】:

如果您只需要特定的元素,您仍然需要解析文件的所有内容,直到找到这些元素。您不必存储不需要的值,但确实需要解析它们以在文件中前进。

【讨论】:

  • 那么创建一个数组并将文件的元素输入到数组中进行搜索?
【解决方案2】:

您是从 Excel 调用程序吗?如果你是,一点点 VBA 会有很长的路要走。您始终只能导出感兴趣的单元格以供您的 C++ 程序读取。

否则,其他答案都是正确的。但是,您不需要一次将整个文件加载到内存中。您可以使用 std::fstream 打开文件并读取文件的每一行,解析每一行所需的信息。

【讨论】:

  • 不,程序应该向用户请求一个主题,然后访问 excel 程序,我的这个参考数据库想法是我可能在 C++ 中做的最终程序的可能主题类,所以我必须完全用 C++ 编写程序。你所说的第二部分看起来是我最好的选择,我会调查的。谢谢你的建议:)
  • @Monique 没问题。作为提醒,请尝试使用 Boost Tokenizer 将字符串拆分为由逗号分隔的字符串集合; Boost Tokenizer
猜你喜欢
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
  • 2015-02-07
  • 2019-12-28
  • 1970-01-01
相关资源
最近更新 更多