Ir ao conteúdo
  • Cadastre-se
SamuelBrev

C Como abrir uma planilha csv em c++

Posts recomendados

Olá ,

 

Gostaria de pedir a ajuda de vcs como eu faço para abrir esta planilha, no qual ja está no formato .csv, para meu programa. Também gostaria de quebrar as virgulas e colocar espaço.

 

Entendo que para abrir um texto, necessita-se deste código.

int main(int argc, char *argv[]) {
    FILE* arquivo;
    
    arquivo = fopen("balancoAmbev", "r");
    
    if( arquivo == NULL)
    {
        printf("\nErro");
        exit(1);
    }
    
    char str[500];
    
    while(fgets(str, 500, arquivo) != NULL)
    {
        printf("%s", str);
    }
    return 0;

 

 

 

 

 

image.thumb.png.9bbecd22beeca28a5316839f1da94f00.png

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@SamuelBrev @SamuelBrev    o csv é do excel  , mas consegue abrir na linguagem  c  ,  e seu código está bom , e com algumas modificações poderia ser assim  :

#include <stdio.h>
int main(){
    FILE* arquivo,*backup;
    backup  = fopen("balancoAmbev2.csv", "a");
    if(backup == NULL)
        backup  = fopen("balancoAmbev2.csv", "w");
    arquivo = fopen("balancoAmbev.csv" , "r");

    if( arquivo == NULL)
    {
        printf("\nErro\n\n\n");
        exit(1);
    }

    char str[30];

    while(fscanf(arquivo,"%s",str) != EOF)
    {
        if(strcmp(str,",") != 0)
            fprintf(backup,"%s ",str);
        else
            fprintf(backup,"%s"," ");
        printf("%s ",str);
    }
    fclose(arquivo);
    fclose(backup);
    printf("\n\n\n");
    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Documentos csv significa "comma-separated values", ou o que é o mesmo em ptbr "valores separados por vírgula" podem ter um formato como esse:

1997,Ford,E350,"ac, abs, moon",30100.00
1999,Chevy,"Venture ""Extended Edition""",,49000.00
1996,Jeep,Grand Cherokee,"MUST SELL!
air, moon roof, loaded",479699.00

Como podemos ver trata-se de simples campos de texto separados por vírgulas, o problema não estaria em ler si não em definir que tipo de estrutura teria esses dados uma vez sejam lidos. Neste exemplo podemos ver que todas as linhas possuem os mesmos campos, que são Ano,Marca,Modelo,Descrição,Preço que bem podem ser dos tipos int, string, string, string, double no qual pode caber em uma struct tal qual:

struct Dados{
    int ano;
    char marca[100];
    char modelo[100];
    char descricao[500];
    double preco;    
};

Poderia ser lido perfeitamente com fscanf.

A coisa é que você diga, ou descreva, o que são todos esses números/campos, para saber como acolher todos esses dados. Ou simplesmente você quer ler chat a chat e jogar eles na tela?

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@vangodp Entendo, tentarei usar uma estrutura. Minha intenção é abrir esta planilha em .csv no meu programa para que fique separado por linhas e colunas, assim como ela está em seu formato .xls. Uma das dúvidas é como eu posso tirar estas vírgulas.

image.thumb.png.d76c1d2923672ec7b6b7ed5c12abb0cc.png

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use strtok() para separar cada parte da string separada por vírgula, usando a vírgula como separador no strtok.

adicionado 4 minutos depois

 

Outra opção seria já pegar separado no próprio fscanf, usando especificador "%[^,\n]" por exemplo para ler 1 dado entre vírgulas por vez.

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!