PNP09 Ответов: 1

Текстовый файл с датами


Привет всем!

Я должен сделать проект, который должен прочитать текстовый файл, полный дат. (до 500 дат), но имеют форму 14/4/2000##742
3/10/1998##9320
18/1/2000##56
и т. д., и я должен взять цифры после ## с 2000 года. Вы можете мне помочь с этим? Я начал с C++, но я стек! Единственное, что я сделал, это прочитал мне текстовый файл. Может быть, сменить язык? .Чистая?

Спасибо!=]

Что я уже пробовал:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main () {
  string line;
  ifstream myfile ("text.txt");
  if (myfile.is_open())
  {
    while ( getline (myfile,line) )
    {
      cout << line << '\n';
    }
    myfile.close();
  }

  else cout << "Unable to open file"; 
  system ("pause");

  return 0;
}

Richard MacCutchan

Кроме чтения и печати содержимого файла, ваш код ничего не делает. Что вы должны делать с каждой записью в файле?

PNP09

он собирается найти стандартное отклонение

Richard MacCutchan

Ну, это действительно многое объясняет.

1 Ответов

Рейтинг:
2

CPallini

Вы можете использовать регулярные выражения. Попробуйте, например

#include <iostream>
#include <sstream>
#include <string>
#include <regex>

int main()
{
  std::string s =   "18/1/2000##56";
  std::cmatch cm;
  std::regex rgx("\\d+/\\d+/(\\d{4})##(\\d+)");
  bool success = std::regex_match ( s.c_str(), cm, rgx );

  if ( success )
  {
    std::istringstream iss( cm[1] );
    int year;
    iss >> year;
    if ( year >= 2000)
    {
      std::cout << "number is " << cm[2] << std::endl;
    }
  }
}


PNP09

да, но я должен прочитать его из текстового файла. И я понятия не имею, сколько дат должен найти. вот в чем проблема

CPallini

Почему это проблема? Подавайте логику соответствия с каждой строкой, которую Вы читаете из файла.