我对这类问题有疑问。 有一个.txt文件包含一个未知数量的行,格式如下:
城市名称(最多30个字符)温度(浮动)wind_speed(浮动)air_pressure(浮动)。
文件中的行示例: 巴黎80.81010 巴黎是城市名称,-8是温度(浮动),0.8(浮动)是风速,1010(浮动)是气压。
需要读取所有行,并将每行存储在具有特定数据类型的结构中。结果必须是结构列表。
如何读取这样的行并正确存储所有不同的数据类型而不会丢失信息? 我已经尝试了所有我能想到的东西,而且我不知道该怎么做。
答案 0 :(得分:2)
这个问题取决于信息的结构方式。
例如,如果城市名称总是以字母结尾,您可以确定下一个数字是温度的开始。这很容易。
但它并不总是那么简单。在你的例子中,你怎么知道温度不是-80.81,风速是0,气压是10?
如果没有关于不同变量的可能结构和值的更多信息,您无法知道。
答案 1 :(得分:2)
阅读该行。然后使用以下假设反过来处理它:
空气压力是一个介于9xx和10xx百帕斯卡之间的整数,所以最后符合这个标准的任何数字都是空气压力(除非你在火星上);
风速在0.0到80节之间,除非有飓风。满足这个标准的任何数字都是风速。
温度在-40到+50之间,除非您在火星,金星或北极或南极。满足这个标准的任何数字都是摄氏温度。
其余部分是城市名称。
如果没有分隔符,您需要这些假设才能处理该行。解析中的任何错误都是由数据格式引起的。将这些假设传达给数据提供者,让他挑战假设。