Muitos produtos de software que lidam com números e cálculos têm a capacidade de dados de saída em um Comma Separated Value (CSV) . Este formato pode ser uma maneira eficaz de transporte de dados entre programas diferentes , pois é de fácil leitura e bastante fácil de manipular. Muitos programas em C que lidam com dados provavelmente vai ter que ler um arquivo CSV em algum ponto. Coisas que você precisa 
 editor de texto 
 Compiler 
 CSV entrada 
 Mostrar Mais instruções 
 1 
 Consulte a documentação do programa que está fornecendo o CSV arquivo . Determinar o número de campos , em cada linha , assim como o formato de cada campo . Por exemplo , se um programa fornece um arquivo CSV com os seguintes dados : 
 
 1 , "teste" , 34,5 
 
 Você poderia anotar três campos: um inteiro, uma corda e um número de ponto flutuante . 
 2 
 Criar uma estrutura que contém um membro de dados para cada campo identificado no CSV. Usando a linha de exemplo , desde de 1 , "teste" , 34,5 seria necessário a seguinte estrutura: 
 
 struct dados 
 
 { 
 
 int col1 ; 
 
 char * col2 ; 
 
 flutuar col3 ; 
 
 }; 
 3 
 Crie um método em seu programa que vai lidar com a leitura do arquivo CSV. Isto terá de ser acessível para o resto do seu programa, e provavelmente terá de trabalhar em estruturas de dados comuns para que outros métodos podem acessar os dados que foi lido dentro Passe o parâmetro por referência para eliminar a necessidade de um valor de retorno . Um protótipo de função exemplo seria: 
 
 vazio ParseCSV (char * filename , dados e entrada) ; 
 4 
 Inclua o padrão de IO usando o seguinte código : 
 
 # include 
 
 Adicione este código ao topo do arquivo de origem que será ler o CSV. 
 5 
 incluir a biblioteca string para permitir a manipulação do dados CSV usando o seguinte código : 
 
 # include 
 
 Adicione este código ao topo do arquivo de origem que será ler o CSV 
 . 6 
 Criar um objeto de arquivo , que irá ler os dados , usando o seguinte código : 
 
 fILE * pInput ; 
 7 
 Criar um buffer de caracteres suficientemente grande para conter um linha do arquivo de cada vez. Devido a limitações da linguagem , a maneira mais simples de fazer isso é declarar uma matriz de caracteres de um tamanho suficientemente grande , como acontece com : 
 
 # define BUFFER_SIZE 1024 
 
 de char buf [ BUFFER_SIZE ] ; 
 8 
 Abra o arquivo com o seguinte código , e atribuí-lo ao seu objeto de arquivo criado anteriormente : 
 
 pInput = fopen ( "nome do arquivo ", "r" ) 
 
 9 
 lido em uma linha do arquivo usando o seguinte código : 
 
 fgets ( buf , sizeof ( buf ) , pInput ) 
 10 
 Analise o CSV usando a função " strtok " . Crie uma nova seqüência de caracteres para apontar para as fichas, e inicialize-o com os dados da linha lida em acima : 
 
 char * tok = strtok ( buf , ",") 
 11 < p > Converter as símbolo recebidos em os dados apropriados. Usando a linha de exemplo : 
 
 1 , "teste" , 3,45 
 
 converter os dados contidos no " tok " para um inteiro usando o seguinte código : 
 
 row.col1 = atoi ( tok ); 
 12 
 Para leituras subsequentes da mesma linha , passar " strtok " um parâmetro NULL em vez da string buffer que você leia antes : 
 
 tok = strtok ( NULL, ",") 
 
 Em seguida, converta o token para o tipo de dados apropriado . Usando a linha de exemplo 
 
 1 , "teste" , 3,45 
 
 O código de análise para uma única linha seria : 
 
 char * tok = strtok ( buf , "," ); 
 
 row.col1 = atoi ( tok ); 
 
 tok = strtok (NULL, "," ); 
 
 row.col2 = tok ; 
 
 tok = strtok (NULL, "," ); 
 
 row.col3 = atof ( tok ); 
 13 
 Faça isso para todas as entradas em cada linha da CSV. A função " strtok " continuará a fornecer os dados entre os valores por vírgula até que se esgote de dados no buffer, em que ponto ele retornará NULL. Isso vai indicar que você terminou com a linha .