Ir ao conteúdo

Posts recomendados

Postado
7 minutos atrás, pitxica disse:

Como assim nao fiz nada, eu desabilitei a msg.
Rodou o codigo que você passou, ai ele executa uma coisa la e fecha, problema é que nao sei o que isso tem a ver com o que foi pedido no enunciado, ai que ta o problema, nao tem como saber se ta certo se eu nao compreendo nem o que tem que aparecer como resultado pra satisfazer o enunciado, entendeu?

 

Você não desabilitou nada: só tinha trocado scanf() por scanf_s(). Sem ler o roteiro simples de como proceder, na mensagem 4496 que eu já expliquei.

 

E não tinha sequer aberto o arquivo pra gerar o tal csv. E quando te mostrei o tal programa de oito linhas trocou apenas o fopen por fopen_s() culpando o programa Visual Studio pelo "problema"

 

Depois que eu te expliquei aparentemente não leu e não entendeu que o programa de oito linhas criou um arquivo na pasta onde rodou ele, com precisamente aquele nominho, 9876543.csv.

 

Que tal abrir o arquivo e ver o conteúdo?

 

image.png.850f398402bb3e7b000f91e77b45cc8d.pngNo mesmo Visual Studio já pode até abrir o arquivo. Veja aqui à esquerda como é:  para incluir um arquivo já existente basta usar esse comando aí, ou usar shift alt A e escolher o arquivo, o tal csv...

 

 

 

12 minutos atrás, pitxica disse:

Pra eu entender isso ai que você esta falando so por video

 

Mas o que falta eu te explicar? Eu não entendo o que você não entende. 

 

 

nome_produto;codigo_produto;preco_produto

 

Isso é o que tem dentro do arquivo, e é um arquivo csv bem formado.

 

Entende isso?

Você entendeu que seu programa vai gravar um arquivo no disco, com o nome do seu registro e a extensão csv?

 

  • Curtir 1
Postado

Amigo, eu desabilitei, juro, depois que você explicou como coloca a exceçao eu coloquei la e como te falei o programa rodou

Serio mesmo, talvez eu seja muito burro, você ta gastando seu tempo e isso nao entra na minha cabeça
Vou tentar achar algum video passo a passo no youtube, porque eu nao estou compreendendo nada do que você ta falando....essa parte do CSV está grego para mim
 

  • Curtir 1
Postado
1 hora atrás, pitxica disse:

Amigo, eu desabilitei, juro, depois que você explicou como coloca a exceçao eu coloquei la e como te falei o programa rodou

 

Sim, claro que rodou. DEPOIS do que eu te expliquei.

 

O que eu disse é que antes você não tinha feito nada, nem sequer ler aquele passo a passo que o compilador te mostou na mensagem 4496 e eu te expliquei 3 vezes. E ao mudar de scanf para scanf_s não procurou no amnual qual podia ser a diferença, porque é claro que não podia ser só o nome.

 

e você disse que o programa era irritante porque tinha que mudar coisas e tal. E eu te disse que não precisaria se você simplesmente tivesse lido e atendido o que o IDE sugeriu na tal mensagem de erro

 

1 hora atrás, pitxica disse:

Serio mesmo, talvez eu seja muito burro, você ta gastando seu tempo e isso nao entra na minha cabeça
Vou tentar achar algum video passo a passo no youtube, porque eu nao estou compreendendo nada do que você ta falando....essa parte do CSV está grego para mim

 

O que eu te expliquei é absolutamente passo a passo. Te mostrei até a planilha e o resultado, E mais um programa que cria o arquivo que você precisa e com a função que grava os dados....

 

1 hora atrás, pitxica disse:

essa parte do CSV está grego para mim

 

Não sei o que falta eu fazer pra te explicar. É só um arquivo. Você pode digitar no IDE.

 

Veja

 

image.png.67b1615cd17df08d323a7d4399f71f99.png 

 

 

 

 

Essa planilha no Google Planilhas tem 6 linhas e os campos como estão lá.

 

 

 

 

 

Se você salvar isso como CSV vai ter o que já te mostrei

 

 

Exemplo 9876543.csv

 

codigo_produto;nome_produto;valor_produto
12;azul dois; -123;46 
300;clube; 0;00 
1;produto tres; 12;25 
2;ouro produto; 32;65 
3;mais um; 53;05 
4;ultimo produto; 73;45 

 

É isso que seu programa vai fazer: o cara digita 6 linhas e o programa grava 7 nesse arquivo. Quevocê pode abrir no IDE e já te mostrei como...

 

 

 

 

  • Curtir 2
Postado

@pitxica    você colocou um vetor na struct

struct dados2
{
    int cod[10];      // um vetor de inteiros com dez posições
    float valor[10];  // um vetor de float com dez posições
};
// aqui na struct não precisa desses vetores , 
// pois o vetor será adicionado para a struct toda
assim :
struct dados2 valores[6]; // esse é o vetor na strutura com seis posições 
                          // e cada membro dela terá 6 posições

, por quê   ?   ,  não precisa , pois em seguida você vai adicionar um vetor para a struct toda ,  e essa linha aqui serve para que ?

// nome[i].produto[strcspn(nome[i].produto, "\n")] = '\0';
// strcspn é para calcular a qtd de caracteres de uma string que pertecem a outra string

e gravar no arquivo do tipo texto ,  use o fprintf , igual ao printf , mas ele vai gravar no arquivo , e depois para você visualizar o conteúdo do arquivo , use o explorer e vá na mesma pasta onde você salvou o seu código e clique no nome do arquivo que você colocou e que no seu código estará entre aspas , então seu código poderia ser assim  :

#define _CRT_SECURE_NO_WARNINGS  // para usar scanf e outras funções no visual studio
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <string.h>

struct dados1
{
    char produto[31];
};
struct dados2
{
    int cod;
    float valor;
};

struct dados1 nome[6];
struct dados2 valores[6];
int main()
{
    int i = 0;
    char c,resto[51];
    for (i = 0; i < 2; i++)      // aqui coloquei apenas dois para testar
    {                            // depois que testou coloque o 6
        printf("\nQual o nome do Produto: ");
        fgets(nome[i].produto, 30, stdin);
        //nome[i].produto[strcspn(nome[i].produto, "\n")] = '\0';
        nome[i].produto[strlen(nome[i].produto) - 1] = '\0';
        //fgets(resto, 50, stdin); // limpa o buffer

        printf("Qual o codigo do produto: ");
        scanf("%d", &valores[i].cod);
        //while ((c = getchar()) != '\n' && c != EOF) {}
        fgets(resto, 50, stdin); // limpa o buffer

        printf("Qual o valor: ");
        scanf("%f", &valores[i].valor);
        //while ((c = getchar()) != '\n' && c != EOF) {}
        fgets(resto, 50, stdin); // limpa o buffer

        printf("------------------------------------------------------------------------");
    }

    printf("\nnome_produto ; codigo_produto ; valor_produto\n\n");
    // agora gravar no Arquivo com tipo cvs
    FILE *arq;
    arq = fopen("RU123456.csv","w");          // cria / abre e reseta o arquivo de texto csv
    if (arq == NULL)                          // se não pode criar o arquivo por qq motivo
    {
        printf("erro ao criar o Arquivo !\n");// escreve essa msg
        return 512;                           // retorna para o windows com esse valor
    }
    for (i = 0; i < 2; i++)                   // aqui coloquei apenas dois para testar
    {                                         // depois que testou coloque o 6
        printf("%15s ; %4d ; %4.2f\n",        // escreve esses dados na tela do console
                 nome[   i].produto        ,  // o nome do produto
                 valores[i].cod            ,  // o codigo do produto
                 valores[i].valor         );  // o valor do produto
        fprintf( arq,"%15s ; %4d ; %4.2f\n",  // grava esses dados no arquivo
                 nome[   i].produto        ,  // o nome do produto
                 valores[i].cod            ,  // o codigo do produto
                 valores[i].valor         );  // o valor do produto
    }
    fclose(arq);                              // fecha o arquivo para validar a gravação

    printf("\n\n");
    system("pause");
    printf("\n\n\n");
    return 0;
}

 

  • Curtir 2
  • 3 meses depois...
Postado

@kampa896

2 minutos atrás, kampa896 disse:

Gostaria de agradecer a todos, @arfneto, @devair1010 e @Midori.

Estou com um problema parecido com o do meu amigo que criou o tópico. Pelas explicações, deve ser a mesma faculdade...

 

E consegui entender e resolver o problema.

 

E dessa vez o forum funcionou :). Nem sempre tem um tópico organizado a ponto de conseguir ajudar alguém sem ser aberto um tópico igual ;) 

 

Ou os usuários nem tentam procurar antes...

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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...