I'm trying to read CSV from a text file in C. The text file format is
1,Bob,[email protected] 2,Daniel,[email protected] 3,John,[email protected] When I run the program, the number displays fine but the name and email are being displayed as garbage. Here is my program...
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { int number; char* name; char* email; } Owner; Owner owners[100]; int load(char* filename) { char buffer[200]; char token[50]; Owner* owner; int owners_size = 0; FILE* file = fopen(filename, "r"); while(fgets(buffer, 200, file) != NULL) { owner = (Owner*)malloc(sizeof(Owner)); owner->number = atoi(strtok(buffer, ",")); owner->name = strtok(NULL, ","); owner->email = strtok(NULL, ","); owners[owners_size++] = *owner; } fclose(file); return owners_size; } int main() { int choise, owners_size, index; char* owners_filename = "owners2.txt"; owners_size = load(owners_filename); if(owners_size) { printf("owners size: %d\n\n", owners_size); for(index = 0; index < owners_size; index++) printf("%d, %s %s\n", owners[index].number, owners[index].name, owners[index].email); } } Can anyone tell me what the reason is. I appreciate your help.