【问题标题】:Formatting and finding text C++格式化和查找文本 C++
【发布时间】:2015-01-15 04:06:45
【问题描述】:

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

我想指出,因为它是针对高级 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++ find 函数的公共资源:

    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;
            }

        }

    }

【问题讨论】:

    标签: c++ string fstream ifstream


    【解决方案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...
    }
    

    你有没有尝试过类似的方法?

    【讨论】:

    • 对不起,在我之前的 c++ 课程中,我们几乎没有接触到 fstream 库。我不确定我明白那是做什么的?它是否只是停在空白处并且下一组>>跳过空白并读取到之后的空白?对您来说也不是那么重要,但这些数字集是经纬度的。
    • @user2311215 如果您使用过std::cin,它使用相同的规则从文件中读取数据。查看我的编辑。
    • 哦,好吧,我明白了。与 cin 相同,但从文件中读取。将它存储在某个地方是什么意思,它不会存储在变量中(在您的示例中:airport、rise、set 和 tz)?
    • 它在一个while循环中,所以你要覆盖这些值。需要将它们存放在某个地方,以免丢失。
    • @user2311215 与任何 C++ 变量一样,它们将被存储直到它们离开作用域(循环结束)。
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多