我有一个可能很简单的问题。我必须将一些python代码转换为c,而我对c的经验并不丰富。
我在 python 中循环读取一个文件,逐行读取它。如果该行中有某个标记,我必须将其拆分并将值读入一个 int 数组。然后将该数组用于进一步处理。此处给出了一个文件示例:
Event 163
Time 29-05-2013, 11:41:45
TDC1.HEX_B 927532 1460340
TDC1.HEX_F -1
TDC1.HEX_x1 930080 1462311
TDC1.HEX_x2 929198 1462611
TDC1.HEX_y1 1462957
TDC1.HEX_y2 928628 1462151
TDC1.HEX_z1 929097
TDC1.HEX_z2 930314 1462992
TDC1.Trigger 1728347
errors 0 0 0 0
proc_time 40
%
Event 500
现在我的问题是我不知道每一行中会有多少整数。在 python 中,我可以做这样的事情:
if 'TDC1.HEX_B' in line:
numbers_str = line.split()[1:] # use all the words except the first
B = [ float(x) for x in numbers_str ]
在此示例中,B 将是一个列表,其中长度对应于 numbers_str 中的数字计数。在 c 中是否有类似的可能性来分配一个足够长的数组?稍后在处理数据时,我必须遍历数组。我已阅读有关 malloc() 和 realloc() 的信息。他们有帮助吗?如果是这样,是否有很好的资源来阅读它们?我是否可能必须先阅读该行,然后为该行中的整数数量分配一个数组?