Как прочитать последнюю дату из файла в C
#include <stdio.h> #include <string.h> #define MAXC 1024 #define MAXDT 16 int record(char *string){ char datestr[MAXDT]; unsigned dateval; unsigned mo, day, yr; unsigned tmpu = 0; char *p = strrchr (string, ','), tmpstr[MAXDT] = ""; do{ if(!p) continue; if(sscanf(p + 1, "%u-%u-%4u", &day, &mo, &yr)!= 3) continue; sprintf(tmpstr, "%04u%02u%02u", yr, mo, day); if(sscanf(tmpstr, "%d", &tmpu) != 1) continue; if(tmpu > dateval){ dateval = tmpu; strcpy(datestr, p + 1); datestr[strcspn (datestr, "\n")] = 0; } }while(0); printf("latest date in file: %s\n", datestr); return 0; } int main () { char string[MAXC]; FILE * fp1 = fopen("file.csv", "r"); FILE * fp2 = fopen("new.csv", "r"); while(fgets(string, MAXC, fp1)){ record(string); } printf("\n"); while(fgets(string, MAXC, fp2)){ record(string); } }
Что я уже пробовал:
В этом коде я просто пытаюсь прочитать последнюю дату в файле, но он печатает все данные из файла, чего я не хочу. Как сделать так, чтобы это работало?
Richard MacCutchan
Сколько еще раз вы планируете опубликовать этот же выпуск? Вам был дан ряд предложений относительно того, как вы можете анализировать данные из строк текста, как вы можете захватывать определенные элементы и т. д.