【发布时间】:2018-06-24 20:38:45
【问题描述】:
我有一个.txt 文件,需要从中读取。该文件包含城市、经度、纬度和其他一些内容的数据。
这是数据格式:
DE 01945 **Tettau** Brandenburg BB 00 Landkreis Oberspreewald-Lausitz 12066 **51.4333 13.7333**
DE 01968 **Schipkau Hörlitz** Brandenburg BB 00 Landkreis Oberspreewald-Lausitz 12066 **51.5299 13.9508**
...
文件的每一行都是一个城市,但对我来说只有粗体信息很重要(名称、纬度、经度)。总而言之,文件中有 16k 行。 你能解释一下我是如何获得这些信息的吗?
QFile file ("path");
QTextStream in (&file);
while (!in.atEnd()) {
QString line = in.readLine();
std::string s = line.toLocal8Bit().constData();
std::cout << s << endl;
}
file.close();
到目前为止,我只能阅读整行,但我不知道如何获取每行的这 3 个信息。 我创建了一个包含三个成员的“城市”类。 _name,_longitude,_latitude。然后我想创建一个向量来保护里面的每个城市。这种方法有效吗? 但更重要的是,请告诉我如何阅读每行的 3 个粗体信息,因为我不知道该怎么做。 (我想遍历字符串的每个字符并搜索制表符,但花了很长时间)。 所以如果你告诉我一个快速的方法,我真的很高兴。程序是在Qt中用c++开发的。
PS:我还注意到一些城市名称由两个单词组成,用空格分隔的问题。
【问题讨论】:
-
城市名称后面是Brandenburg这个词,code ABCDE?之前,除了纬度和经度在末尾行?,终于可以分享文件了。
-
如果我知道如何在这里上传文件,我可以分享文件:D。但我也可以分享文件的链接。 download.geonames.org/export/zip 只需从德国城市的地理坐标下载 DE.zip 它是一个开源代码