Я хочу решить следующую задачу:
Дан текстовый файл "pesel.txt", который содержит 150 национальных идентичностей.Каждая строка содержит один национальный идентификатор, который представляет собой 11-значный номер.Первые две цифры слева определяют год, в котором человек родился, следующие две цифры определяют месяц, а следующие две определяют день.
Чтобы сократить:
цифры 0-1 = цифры года 2-3 = цифры месяца 4-5 = цифры дня 6-11 = определить что-то еще, что здесь не важно
Мне нужно прочитать файл, проверить, сколько людей родилось в декабре.Я пытаюсь сделать это следующим образом:
- читать каждую строку, пока не будет достигнут конец файла
- в каждой строке Я проверяю, равен ли третий символ в строке 1 и если четвертыйсимвол равен 2, если да, я увеличиваю переменную, это мой счетчик для людей, родившихся в декабре, в противном случае выполняется следующая итерация цикла
Вот код:
int _tmain(int argc, _TCHAR* argv[])
{
ifstream file( "C:\\Kuba\\Studia & Nauka\\MATURA XDDD
\\INFA\\1\\Dane_PR\\pesel.txt" );
string line;
int bornInDecember=0;
if( !file.is_open() ){
cout << "Cannot read the file." << endl ;
}else{
while( file.good() ){
getline( file, line );
if( line[2] == '1' && line[3] == '2' ){
bornInDecember++ ; // 0-1 year, 2-3 month, 4-5 day
}
}
cout << "Amount of people born in december : "<< bornInDecember<< endl;
file.close();
}
system("pause");
return 0;
}
проблема в том, что я получаю следующую ошибку, и я понятия не имею, почему ..
http://img10.imageshack.us/i/mvserr.png/