Ir ao conteúdo
  • Cadastre-se

Ezequiel André

Membro Júnior
  • Posts

    6
  • Cadastrado em

  • Última visita

posts postados por Ezequiel André

  1. Funcionou perfeitamente. Eu já havia tentado antes colocar o fscanf dentro do whille , mas da seguinte forma:

    "while((fscanf(txt,"%d %s%f............., &dados.cod,&.......)!=NULL), mas também não funcionou. 

    Agora está tudo certo, Muito obrigado e espero que este post ajude a quem estiver com esta duvida também, por que pesquisei em vários lugares e não achei uma explicação tão boa. 

    Muito obrigado

  2. Boa noite pessoal. Estou engatinhando em um pequeno projeto em C e não estou com o código fonte todo pronto, estou criando em partes. E já na primeira parte, a que deveria mostrar a lista de itens de um arquivo, a última linha fica repetindo. Estou usando o "fscanf"  para ler do arquivo. Se alguém puder me ajudar a resolver, ou me explicar onde estou errando, agradeço. Segue o código fonte, lembrando que as outras funções eu ainda não implantei.Segue também imagem das telas de execução, só para pré-visualização

     

    #include<stdio.h>
    #include<stdlib.h>
    #include<stdbool.h>
    #include<windows.h>
    void gotoxy(int x, int y){
      COORD coord;
      coord.X = x;
      coord.Y = y;
      SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
    }
    typedef struct{
    	int cod;
    	char nome[15];
    	float quant;
    	float valor;
    	float v_total;
    	float v_venda;
    	float lucro;
    }Dados;
    int head(){
    	for(int i = 0 ; i < 6 ; i++){
    		for(int j = 0 ; j < 50 ; j++){
    			if(i==0){
    				if(j==0){
    					printf("%c",201);
    				}
    				if(j==49){
    					printf("%c\n",187);
    				}
    				else{
    					printf("%c",205);
    				}
    			}
    			if(i==5){
    				if(j==0){
    					printf("%c",200);
    				}
    				if(j==49){
    					printf("%c\n",188);
    				}
    				else{
    					printf("%c",205);
    				}
    			}
    						
    		}if(i>1&&i<5){
    				printf("%c%50c\n",186,186);
    			}
    	}
    	gotoxy(2,2);
    	printf("\tSISTEMA DE GERENCIAMENTO DE ESTOQUE\n\n\n");
    	
    }
    int body(){
    	for(int i = 0 ; i < 17 ; i++){
    		for(int j = 0 ; j < 50 ; j++){
    			if(i==0){
    				if(j==0){
    					printf("%c",201);
    				}
    				if(j==49){
    					printf("%c\n",187);
    				}
    				else{
    					printf("%c",205);
    				}
    			}
    			if(i==16){
    				if(j==0){
    					printf("%c",200);
    				}
    				if(j==49){
    					printf("%c\n",188);
    				}
    				else{
    					printf("%c",205);
    				}
    			}
    						
    		}if(i>1&&i<16){
    				printf("%c%50c\n",186,186);
    			}
    	}
    }
    int menu(int *op){
    	head();
    	body();
    	gotoxy(2,6);
    	printf("Digite a opcao desejada:");
    	int j=1;
    	printf("\n\n");
    	
    	for(int i = 9 ; i < 16 ; i++){
    		
    		if(i==9){
    			gotoxy(2,i);
    			printf("%d- Mostrar relatorio do estoque",j);
    			j++;
    		}
    		if(i==10){
    			gotoxy(2,i);
    			printf("%d- Salvar relatorio do estoque",j);
    			j++;
    		}
    		if(i==11){
    			gotoxy(2,i);
    			printf("%d- Inserir item no estoque",j);
    			j++;
    		}
    		if(i==12){
    			gotoxy(2,i);
    			printf("%d- Localizar item no estoque",j);
    			j++;
    		}
    		if(i==13){
    			gotoxy(2,i);
    			printf("%d- Excluir item do estoque",j);
    			j++;
    		}
    		if(i==14){
    			gotoxy(2,i);
    			printf("%d- Ajuda",j);
    			j++;
    		}
    		if(i==15){
    			gotoxy(2,i);
    			printf("%d- Sair",j);
    			j++;
    		}	
    	}
    	gotoxy(27,6);
    	scanf("%d",&*op);
    	system("cls");
    	//return *op;
    }
    int main(){
    	Dados dados;
    	FILE *txt;
    	int opcao;
    	
    	do{
    		menu(&opcao);
    		system("cls");
    		switch(opcao){
    			case 1:{
    				head();
    				body();
    				
    				if((txt=fopen("estoque.txt","r"))==NULL){
    					printf("Não foi possivel aabrir o arquivo");
    				}
    				else{
    					int i=8;
    					gotoxy(1,7);
    					printf("COD  NOME     QUANT VALOR VALOR_V VALOR_T  LUCRO");
    					while(!feof(txt)){
    						fscanf(txt," %d %s %f %f %f %f %f",&dados.cod,&dados.nome,&dados.quant,&dados.valor,&dados.v_venda,&dados.v_total,&dados.lucro);
    						++i;
    						gotoxy(2,i);
    						printf("%d  %s\t%.2f%5.2f%6.2f%9.2f%8.2f",dados.cod,dados.nome,dados.quant,dados.valor,dados.v_venda,dados.v_total,dados.lucro);
    					}
    				}
    					fclose(txt);
    					gotoxy(2,6);
    					printf("Para sair digite 7:");
    					gotoxy(22,6);
    					scanf("%d",&opcao);
    				
    			}
    			case 2:{
    				printf("tchau");
    				break;
    			}
    		}
    	}while(opcao!=7);
    	
    	gotoxy(1,20);
    	return 0;
    }

     

    • Curtir 1
  3. Pessoal. Estou mais uma vez precisando de uma ajuda.

    Preciso desenvolver um programa em C que receba o número de cinco candidatos e armazene  o votos de cada um.Tentei fazer com um vetor que armazena os votos , mas não consegui ainda visualizar como eu separo a quantidade de votos de cada um ...

    	setlocale(LC_CTYPE,"");
    	
    	int candidato[5],i;
    	
    	printf("***ELEIÇÕES 2018***\n");
    	printf("1-Yoshi\n2-Mario\n3-Luigi\n4-Koopa\n5-Princesa Peach\n");
    	
    	printf("Escolha seu candidato:\n");
    	for( i = 0; i < 10 ; i ++){
    		scanf("%d",&candidato[i]);
    	}
    	for( i = 0 ; i < 10 ; i ++){
         printf("%d\t",candidato[i]);
    	 }
    	return 0;
    }

    Se alguém entendeu o conceito do que eu tô tentando fazer... ajuda ai...

  4. Seria este formato caso o usuário digitasse 5, por exemplo;

    *  *  *  *  *

    *              *

    *              *

    *              *

    *  *  *  *  *

    ...  

     

     

    adicionado 6 minutos depois
    13 minutos atrás, isrnick disse:

    O que você quer dizer com "quadrado vazio"?

    E poste sua tentativa para que possamos te ajudar (para postar códigos no fórum use a tag Code apertando o botão <> no topo do campo de respostas).

     

    Bem, mas, depois de algumas pesquisas encontrei um exercício em outra linguagem, mas como a estrutura é praticamente  a mesma, consegui utilizar.

    Obrigado. 

     

    #include<stdio.h>
    #include<locale>
    int main(){
    	setlocale(LC_CTYPE,"");
    	
    	int lado;
    	
    	printf("Digite o tamanho do lado do  quadrado:  ");
    	scanf("%d",&lado);
    	
    	
    	for(int col=1; col<=lado;col++){		
    		printf(" *");
    	}
    	printf("\n");
    	
    	for(int lin=2;lin<lado;lin++){			
    			printf(" *");
    	 	for(int col=2;col<lado;col++){
    			printf("  ");
    		}	
    		printf(" * \n");
    		
    	}
        for(int col=1; col<=lado;col++){		
    		printf(" *");
    			
    	}	
    	
    	return 0;
    }

     

    adicionado 21 minutos depois

    Aqui vai ele com os meus comentários, se estiver errada a minha interpretação do código, comentem, pois estou com dificuldades em entender bem , mas acho que é isso!!! valeu!!

    #include<stdio.h>
    #include<locale>
    int main(){
    	setlocale(LC_CTYPE,"");
    	
    	int lado;
    	
    	printf("Digite o tamanho do lado do quadrado:  ");
    	scanf("%d",&lado);
    	
    	
    	for(int col=1; col<=lado;col++){// Coluna recebe 1, enquanto coluna for menor ou igual que o lado, incrementa +1;		
    		printf(" *");// imprime a imagem de um espaço e asterisco;
    	}
    	printf("\n");//quebra a linha para a próxima instrução;
    	
    	//no próximo "FOR" é onde são feitas as laterais do quadrado;
    	for(int lin=2;lin<lado;lin++){// aqui a variavel linha, inicia com 2, e enquanto ela for menor que o lado, incrementa com +1;
    			printf(" *");// e imprime espaço e asterisco;
    	 	for(int col=2;col<lado;col++){ //dentro deste mesmo "FOR", temos um outro para criar as colunas vazias;coluna recebe 2, enquanto for menor que o lado, soma com 1;
    			printf("  "); // e imprime o espaço vazio;
    		}	
    		printf(" * \n");//aqui finaliza o "FOR" da criação das laterais ;
    		
    	}
        for(int col=1; col<=lado;col++){		// aqui o código repete , veja que é como o primeiro "FOR" declarado. para fazer a última linha , a base do quadrado.
    		printf(" *");//onde os asteriscos preenchem a linha.
    			
    	}		
    			
    	return 0;
    }

     

    • Curtir 2
  5. E aí pessoal, gostaria de ver se algum membro poderia me ajudar.Estou no primeiro semestre do curso ADS e ainda não consegui assimilar bem algumas funções. Estou em uma maratona de exercícios de programação e me deparei com o tal quadrado vazio. Bem eu consegui fazer o quadrado completo com dois "for", mas para fazer vazio , estou quebrando a cabeça. 

    • Curtir 1

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!