Estou com um trabalho de Estrutura de Dados para ser feito, mas estou tendo muita dificuldade em ler um arquivo CSV e separar as informações em variáveis. O problema deve ser iniciado desta maneira para que depois ainda seja adicionado mais clientes, excluir e tudo mais. Alguém poderia ajudar?
O inicio do meu programa (a função do arquivo), está até agora desta maneira:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char string [1000];
float total;
FILE * pFile;
char linha[200];
struct estrutura
{
int aux;
char nome[40];
char endereco[40];
char cidade[40];
char pais[20];
char cep[10];
char nasc[12];
char telefone[14];
float total[20];
};
struct estrutura cliente[200];
int menu();
int menu2();
void arquivo();
void adicionar();
void alterar();
void excluir();
void exibir();
void pesquisar();
void listarnome();
void listarcodigo();
void listartotal();
int contar();
char *tmp;
main()
{
system("cls");
menu(); //a função arquivo é uma opção do menu
}
//----------------------------------------------
//LEITURA DE ARQUIVO
//----------------------------------------------
void arquivo()
{
pFile = fopen( "11_ProjetoPratico_ControleClientes_clientes.csv", "r" ) ;
int i = 0;
while (fgets(string, 1000, pFile) != NULL)
{
tmp = strtok(linha, ";");
cliente[i].aux = atoi(tmp); //atoi for int
tmp = strtok(NULL, ";"); //use strcpy for char
strcpy(cliente[i].nome,tmp);
printf("%s", cliente[i].nome);
tmp = strtok(NULL, ";");
strcpy(cliente[i].endereco,tmp);
tmp = strtok(NULL, ";");
strcpy(cliente[i].cidade, tmp);
tmp = strtok(NULL, ";");
strcpy(cliente[i].pais, tmp);
tmp = strtok(NULL, ";");
strcpy(cliente[i].cep, tmp);
tmp = strtok(NULL, ";");
strcpy(cliente[i].nasc, tmp);
tmp = strtok(NULL, ";");
strcpy(cliente[i].telefone, tmp);
printf("index i= %i ID: %i, %s, %s, %s, %s, %s, %s, %s, %f \n",i, cliente[i].aux , cliente[i].nome, cliente[i].endereco , cliente[i].cidade, cliente[i].pais, cliente[i].cep, cliente[i].nasc, cliente[i].telefone, cliente[i].total);
i++;
}
//free(buf);
fclose(pFile);
}
Obrigado desde já!