Мой текстовый файл:
"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;
}