【发布时间】:2016-03-07 05:55:52
【问题描述】:
我有一个如下所示的输入文件:
5
(2,3)
(1,4)
(1,3)
(3,4)
(4,5)
第一个数字是有序对的数量。我正在尝试扫描数组x[i] 中(x,y) 中的每个x,并将y 数字扫描到y[i] 中。我尝试使用 fscanf 将每一行放入一个数组中,然后设置x[i]=array[1] 并为每个i 设置y[i]=array[3],但我认为发生的事情是array[0] 不等于'( ' 每次被扫描。对于每个有序对,将(x,y) 中的 x 和 y 扫描到 x[i]=x 和 y[i]=y 中的最简单方法是什么?
【问题讨论】:
-
在没有看到你的代码的情况下,我们可以随机猜测哪里出了问题;那不会有帮助的。请显示您当前使用的代码。
-
如果您还没有这样做,请花点时间阅读the help pages,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。也请read about how to ask good questions。您可能还想了解如何创建Minimal, Complete, and Verifiable Example。
-
至于你的问题,
scanf(and family) 函数实际上有简单的模式匹配。你可以告诉它寻找例如字符'('、','和')'并将它们与格式说明符混合。 -
尝试 strtok 对字符串进行标记。
-
有一天,人们会注意到
scanf(以及标准库)除了最简单的解析任务之外的所有内容都被破坏了......