Чтение текстового файла и добавление его в структуру - PullRequest
0 голосов
/ 25 апреля 2020

Мой текстовый файл:

 "2014-02-13T21:00:00": "3", "2014-02-13T07:20:00": "3.0", "2014-02-13T03:20:00": "3.0",    
"2014- 02-13T07:00:00": "3", "2014-02-13T15:50:00": "6.0", "2014-02-13T03:50:00": "2.0",            
 "2014-02-13T04:00:00": "2", "2014-02-13T12:00:00": "6", "2014-02-13T04:20:00": "2.0", "2014-02- 
 13T12:20:00": "6.0", "2014-02-13T12:50:00": "6.0", "2014-02-13T22:50:00": "3.0", "2014-02- 
13T09:00:00": "4", "2014-02-13T09:20:00": "4.0", "2014-02-13T09:50:00": "4.0", "2014-02- 
13T18:00:00": "5", "2014-02-13T05:20:00": "2.0", "2014-02-13T15:20:00": "6.0", "2014-02- 
13T00:50:00": "4.0", "2014-02-13T14:50:00": "7.0", "2014-02-13T00:00:00": "4", "2014-02- 
13T00:20:00": "4.0", "2014-02-13T06:50:00": "3.0", "2014-02-13T22:00:00": "4", "2014-02- 
13T18:20:00": "5.0", "2014-02-13T02:50:00": "3.0", "2014-02-13T02:20:00": "3.0", "2014-02- 
13T04:50:00": "2.0", "2014-02-13T02:00:00": "3", "2014-02-13T23:00:00": "3", "2014-02- 
13T16:50:00": "5.0", "2014-02-13T19:50:00": "4.0", "2014-02-13T19:20:00": "4.0", 

Я хочу добавить в s.time метку времени "2014-02-13T21: 00: 00" и в s.temp 3, но что-то идет не так. На самом деле программа tge сохраняет в s.time "2014-02-13T21: 00: 00": "3" и в s.temp "3", но я хочу сохранить только данные.


#include <stdio.h>
#include <stdlib.h>

#define SIZE 8222

struct Aarhus{
    char time[22];
   char temp[5];    
};

void openFile(FILE *fp,struct Aarhus arr[]);
void binary_search(struct Aarhus arr[], int n[]);

int main(){
    char in[22];
    int inI;
    struct  Aarhus s[SIZE];
    FILE *inputFile;
    inputFile= fopen("tempm.txt","r");

    openFile(inputFile,s);

    printf("Date(2014-0x-xxTx:xx:xx)\n:");
    scanf("%s", in );
    inI= atoi(in);
    printf("%d",inI);

    binary_search( s, inI);
}

openFile(FILE *fp,struct Aarhus arr[]){
    int i;

    if (fp!= NULL){
       for (i = 0; i < SIZE; i++){
           fscanf(fp, " %s ", arr[i].time);
           fscanf(fp, " %s ", arr[i].temp);
           printf("%s %s \n", arr[i].time,arr[i].temp);
       }
       fclose(fp);
    }
}

binary_search(struct Aarhus arr[],int n[]){
    int low, high, mid;

    low = 0;
    high = SIZE - 1;

    while (low <= high) {
        mid = (low+high)/2;
        double diff_t = difftime(arr[mid].time,n);
        if (diff_t < 0  )
            high = mid + 1;
        else if (diff_t > 0)
            low = mid + 1;
        else    /* found match */
            return arr[mid].temp;
    }
    return -1;
}
...