0

好的,这是我第二次为我的程序寻求帮助,我知道我几乎得到了它,但我无法弄清楚。所以现在我正在尝试编写一个程序,让用户以 dd/mm/yyyy 格式输入日期并将其作为月份日期、年份返回。所以 01/01/1990 变成了 1990 年 1 月 1 日。我需要使用一个文本文件,其中包含月份名称以及对应的数字。所以文本文件的列表如下所示:

01January
02February
03March

.. 等等。

到目前为止,我有这个:

// reading a text file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main ()
{
    string thedate; //string to enter the date
    string month; // this string will hold the month
    ifstream myfile ("months.txt");
    cout << "Please enter the date in the format dd/mm/yyyy, include the slashes: " <<      endl;
    cin >> thedate;

    month = thedate.substr( 3, 2 );
    string newmonth;

    if (myfile.is_open())
    {
        while ( myfile.good() )
        {
            getline (myfile,newmonth);
            newmonth.find(month);



            cout << newmonth << endl;

        }
        myfile.close();
    }

    else cout << "Unable to open file"; 

    return 0;
}

所以我已经能够从用户输入中提取月份,并将其存储为月份,我只是不太确定如何搜索那个月份的文本文件,并且只将月份的名称返回到一个新的字符串中,只能从那个线。现在如果我输入 02/05/1990,它将输出

05
05
05
05
05
.. for 12 lines. 

我是编程新手,因此不胜感激。

另外,我的编程课程只有大约 3 周的时间,我们还没有真正学习过函数或数组。因此,如果您确实有任何帮助,请避免使用数组和函数。我也理解不从文本文件中读取更容易,但这是我的班级从文本文件中读取它的要求,所以我需要它。

谢谢。

4

1 回答 1

0

string::find函数(您已经使用过)返回搜索字符串的位置(-> 月份)。您现在可以使用该string::substr函数来提取您要查找的字符串部分。

希望这有助于开始。

于 2013-05-31T01:14:20.163 回答