the text file has two lines :
2012-01-01,12:01,San Jose,Music,12.99,Amex
2012-01-02,10:00,Santa Clara,Toys,45.00,Visa
i need to group each line into separate arrays
like, date[0] = 2012-01-01
date[1] = 2012-01-02
time[0] = 12:01
time[1] = 10:00 and so on for other elements also
i have implemented the logic, its working for dates, but not for others, don't know why can u please check and see if u could solve it.
} }
Code:
#include<stdio.h>
#include<stdlib.h>
#include<string.h> //for strtok
#define PATH "C:\\Users\\Padma\\Desktop\\sales.txt"
struct sales{
char Dates[50];
char time[50]; //hrsec
char storename[50]; //char *strs[NUMBER_OF_STRINGS] = {"foo", "bar", "bletch", ...};, for store name
char item[50]; //NAMES OF ITEMS IN STORES
char cost[50];
char payment[50];
};
struct sales sales1[50];
int main(){
FILE* file;
file = fopen(PATH,"r");
int i = 0;
const char *s = ",";
char *token = NULL;
char line[1000]; //no of characters in each line
while(fgets(line,sizeof line,file)!= NULL) /* read a line from a file */ {
printf("%s\n\n",line); //print the file contents on stdout.
token = strtok(line, s);
strcpy(sales1[i].Dates,token);
printf("%s",sales1[0].Dates);
// while(token != NULL){
token=strtok(NULL,s);
strcpy(sales1[i].time,token);
token = strtok(NULL,s);
strcpy(sales1[i].storename,token);
token = strtok(NULL,s);
strcpy(sales1[i].item,token);
token = strtok(NULL,s);
strcpy(sales1[i].cost,token);
token = strtok(NULL,s);
strcpy(sales1[i].payment,token);
i++;
//break;
//}
}
int y =0;
for(y = 0; y < 2; y++){
printf("%s ", sales1[y].Dates);
printf("\n%s", sales1[y].time);
}
}