格式化和查找文本C ++

时间:2015-01-15 04:06:45

标签: c++ string fstream ifstream

我正在设计一个程序代码,当给出一些选择的机场代码时,它会确定该给定区域中一周的日出和日落时间。

我想指出,因为它适用于高级C ++类,我不想被传递代码。我会被告知如何去做,而不是有人为我做。

在这种情况下,我有一个包含此信息的cityinfo.txt文件:

APN
 45.07   83.57   E
ATL
 33.65   84.42   E
DCA
 38.85   77.03   E
DEN
 39.75  104.87   M
DFW
 32.90   97.03   C
DTW
 42.23   83.33   E
GRR
 42.88   85.52   E
JFK
 40.65   73.78   E
LAF
 40.42   86.93   E
LAN
 42.77   84.60   E
LAX
 33.93  118.40   P
MBS
 43.53   84.08   E
MIA
 25.82   80.28   E
MQT
 46.53   87.55   E
ORD
 41.98   87.90   C
SSM
 46.47   84.37   E
TVC
 44.73   85.58   E
YYZ
 43.67   79.63   E

输出就像在每个时区代码(e,z,c等)之后没有刹车一样运行

所以我对此有两个问题:

  • 当我把它放在我的字符串变量中时,是否需要格式化代码,它不需要仅仅引用输出?
  • 如果需要,我该如何格式化?

似乎已经找到了我的帮助你们的帮助是来自c ++查找函数的公共来源:

    ifstream fileIn;
    string airportCode, lat, longitude, timeZone, line;
    size_t pos;

    cout << "Please Enter an Airport Code: ";
    cin >> airportCode;

    fileIn.open("cityinfo.txt");
    if (fileIn.is_open())
    {
        while (fileIn.good())
        {
            getline(fileIn, line);
            pos = line.find(airportCode);
            if (pos != string::npos)
            {

                fileIn >> lat >> longitude >> timeZone;
                break;
            }

        }

    }

1 个答案:

答案 0 :(得分:1)

这是一个非常干净的格式文件。

你应该做的事情很好:

#include <fstream>

ifstream my_ifstream("data_file.txt");  // Create fstream from file.

while ( my_ifstream )
{
    std::string airport;
    double rise;
    double set;
    std::string tz;

    my_ifstream >> airport >> rise >> set >> tz;
    // Store this data somewhere...
}

你有没有试过这样的东西呢?