我想弄清楚从文本文件中读取数字并将这些数字设置为变量的最佳方法。我遇到了麻烦,因为会有多个文本文件将测试我的代码,并且它们的长度和大小都不相同。样品测试一个看起来像这样:使用C++解析文本文件
0 (1,3) (3,5)
1 (2,6)
2 (4,2)
3 (1,1) (2,4) (4,6)
4 (0,3) (2,7)
其中第一个数字表示在图中的顶点,在坐标的第一个数字是它是在有向图朝向去顶点,而第二个数字是边缘的重量。我尝试了getline并将其放入数组,但在某些测试案例中,可能有100个坐标,我不知道如何指定数组大小。我也无法解析圆括号和逗号,也不知道如何用文本文件中的正确数字初始化变量。
为什么不使用矢量? –
@RetiredNinja我还没有真正教过什么矢量,但如果这将是一个更简单的解决方案,我会考虑这样做。感谢您的想法 – justinbg10
正如退休忍者所说,使用矢量(实际上可能是矢量矢量)。至于解析,我会读一行,然后使用字符串操作来分隔行中的值。您可以一次读取一个字符,但它需要一个小型状态机来跟踪您所在的解析过程中的哪个位置,这对于像这样的相对简单的解析器来说似乎过分了。 –