【发布时间】:2015-06-17 09:44:41
【问题描述】:
我对编程还是很陌生——大约两个月——所以如果这是一个非常基本的问题,那么我道歉。与此同时,我的术语可能完全不适用。如果是这样,我将非常感谢您提供的任何帮助,告诉我适当的条款。我在这里搜索了一些论坛,但找不到任何可以回答我问题的东西。如果您知道一个主题,那么请在下面链接它。
关于这个问题。
假设我有一个包含大量信息的外部文本文件。信息分为项目,每个项目由'::'从下一个项目划定。每个项目分为四个字段,每个字段由“\”隔开。
我想要做的是从文本文件中取出一个项目的信息并将其放入一个名为 info 的数组中。然后我想获取信息并将其传递给另一个函数。此函数将创建四个新数组,然后将字段 1 分配给数组 1,将字段 2 分配给数组 2,等等。
基本上,我如何获取一个数组,获取该数组的一部分并将其提供给另一个变量,然后复制该数组的另一部分并将其提供给另一个数组。
例子:
外部文本文件如下所示:
26::Female::Kentucky::Trauma\\34::Male::Michigan::Elective\\85::Male::Unknown::Trauma\\18:Female::Washington::Emergent
使用 fstream,然后我将 "26::Female:Kentucky::Trauma" 放入名为 'info' 的数组中,然后将其传递给名为 Sort(char info[]) 的函数。
如何让Sort(char info[]) 获取带有“26::Female::Kentucky::Trauma”的数组并将其转换为四个数组,例如:
Age: 26
Sex: Female
Location: Kentucky
Reason for Admission: Trauma
编辑 数组 1 看起来像: 26::Female::Kentucky::Trauma
然后我创建了四个字符数组,分别称为 Age、Sex、Location、Reason。如何将 26 放入 Age 数组,将 Female 放入 Sex 数组,将 Kentucky 放入 Location 数组,将 Trauma 放入 Reason 数组?
我知道我可以在从外部文件读取的阶段执行此操作,但出于我的目的,这样做似乎更容易。
感谢您的宝贵时间。
【问题讨论】:
-
问题定义与其声明不匹配。您真的在问如何解析文本文件吗? 如果您有两个数组(动态的,通常使用
std::vector实现),您可以只使用一个范围构造函数,该构造函数采用 then 开始和结束迭代器要复制的子数组。例如,std::vector<T> copied_array(&original_array[idx_begin], &original_array[idx_end])。 -
我不知道您所说的“问题定义与其声明不匹配”是什么意思。但是,不,我不是在问如何解析文本文件。我在问如何获取一个散布有符号“::”的字符数组,并将“::”之间的信息传输到其他数组。我会尽量让它更清楚。
-
@Acorn_Tree
But, no, I'm not asking how to parse a text file.但是您正在询问如何解析文本流,无论您是否意识到。该文本是否来自文件、字符串缓冲区并不重要。基本上是一样的。可能重复:stackoverflow.com/questions/236129/split-a-string-in-c
标签: c++ dynamic-memory-allocation