Ir ao conteúdo
  • Cadastre-se

C Trabalho de faculdade, estou apanhando


pitxica

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...

@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
Link para o comentário
Compartilhar em outros sites

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...