Ir para conteúdo
Fórum Script Brasil
  • 0

Problema no Dev-C++


Nilton Ribeiro

Pergunta

  • Respostas 52
  • Created
  • Última resposta

Top Posters For This Question

Posts Recomendados

  • 0
Marina Baixa 1.60 50.0 18
Katia Pesada 1.80 70.0 18
Carla Jovem 1.80 60.0 16
Lidiane Ribeiro 1.70 65.0 19
Michele Albuquerque 1.50 56.0 15
Batira Aipo 1.80 70,0 25
Daiane Faria 1.75 55.0 20
Rebeca Leeps 1,78 66.0 17
Catarina Lecter 1.85 65.0 20
Ana Paula 1.77 59.0 19
Bianca Beatiful 1.59 50.0 21
Elaine Cristina 1.45 55.0 17
Beatrice Oliveira 1.85 50.0 22
Luiza da Hora 1.80 60.0 18
Beatriz Vidigal 1.75 56.0 19
Valéria Santos 1.65 89.8 30
Talita da Silva 1.80 75.0 24
Vanessa Conceicao 1.65 58.0 15
Magali Ferreira 1.70 65.0 19
Adriana Mattos 1.75 56.0 19
Darciana Pereira 1.80 65.0 21
Jacira Kitana 1.59 58.5 24
Queila Alcantara 1.72 56,0 22
Debora Cruz 1.78 65.0 23
Jaqueline Pirez 1.60 56.0 17
Cassiana Rocha 1.80 65.0 21
Danubia Soares 1.85 50.0 22
Katia Santos 1.72 66.0 20
Kelly Freitas 1.80 60.0 18
Link para o comentário
Compartilhar em outros sites

  • 0
  • 0

Puxa não sei o que fazer meu codigo se encontra assim:

//Nilton da Silva Ribeiro RA: 2213112300

//Jorge Santos Santana RA:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
void mostrar()
{
char str[255];
FILE *arq;
if ((arq = fopen("Modelos.dat","r")) == NULL);
{
printf("\nO arquivo não foi encontrado");
getche();
}
if(arq)
{
while(!feof(arq))
{
fgets(str,255,arq);
printf("%s",str);
}
}
fclose(arq);
printf("\n\n");
system("PAUSE");
}
/*void mAlfabetica(void);
void mClassificadas(void);*/
int main()
{
printf("\n.::Programa para classificacao de Modelos::.\n\n");
printf("\n\nMenu\n\n");
for( ; ; )
{
int opcao;
printf("\n1 - Mostrar nomes das modelos contido em um arquivo. ");
printf("\n2 - Mostrar nomes das modelos contido em um arquivo em ordem alfabetica.");
printf("\n3 - Mostrar nomes das modelos classificas.");
printf("\n0 - Sair ");
scanf("%i", &opcao);
if (opcao == 0)
break;
switch(opcao)
{
case 1: mostrar();
break;
case 2: //mAlfabetica();
break;
case 3: //mClassificadas();
break;
default: printf("\nOpcao Invalida");
}
}
printf("\nFim do Programa");
return 0;
getche();
}

ah algum erro nele.

é que eu quero fazer da maneira mais simples pra depois explicar pra professora

Editado por Nilton Ribeiro
Link para o comentário
Compartilhar em outros sites

  • 0

O único erro da sua função é nesta linha abaixo veja:

if ((arq = fopen("Modelos.dat","r")) == NULL); // Aqui não se usa ponto e vírgula

{

Basta tirar pra funcionar

Substitui sua função mostrar(); por esta abaixo:

void mostrar()
{
    char str[255];
    FILE *arq;
    arq = fopen("Modelos.dat","r");
    if ( arq == NULL ){
                printf("O arquivo não foi encontrado");
                getche();exit(0);
                }
    if(arq)
    {
        while(!feof(arq))
        {
            fgets(str,255,arq);
            printf("%s",str);
        }
    }

    fclose(arq);
    printf("\n\n");
    system("PAUSE");
}
Editado por roccoC/C++
Link para o comentário
Compartilhar em outros sites

  • 0

não funcionou, sera que tenho que fazer igual a este exemplo:

printf("\nAgora vamos abrir o arquivo e ler os dados gravados”);

arq = fopen(“teste.txt”, "r");
if (arq==NULL)
{
printf("\nErro na abertura do arquivo teste.txt");
getch();
exit(1);
}
fscanf(arq,”%s %i %f \n”,nomearq,&idadearq,&alturaarq);
printf(”\n Nome=%s Idade=%i Altura=%.2f \n”,
nomearq,idadearq,alturaarq);
fclose(arq);
Link para o comentário
Compartilhar em outros sites

  • 0

Não é necessário, o seu código acima tá certo, e a função que te mostrei por último também,

estou testando aqui no Dev e no eclipse, funcionou normal.

Veja abaixo seu código funcionando:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

void mostrar()
{
     char str[255];
     FILE *arq;
     if ((arq = fopen("Modelos.dat","r")) == NULL)
     {
         printf("\nO arquivo não foi encontrado");
         getche();
     }
     if(arq)
     {
         while(!feof(arq))
         {
              fgets(str,255,arq);
              printf("%s",str);
         }
     }

     fclose(arq);
     printf("\n\n");
     system("PAUSE");
}
/*void mAlfabetica(void);
void mClassificadas(void);*/

int main()
{
printf("\n.::Programa para classificacao de Modelos::.\n\n");
printf("\n\nMenu\n\n");

for( ; ; )
{
int opcao;

printf("\n1 - Mostrar nomes das modelos contido em um arquivo. ");
printf("\n2 - Mostrar nomes das modelos contido em um arquivo em ordem alfabetica.");
printf("\n3 - Mostrar nomes das modelos classificas.");
printf("\n0 - Sair ");
scanf("%i", &opcao);

if (opcao == 0)
break;

switch(opcao)
{
case 1: mostrar();
break;
case 2: //mAlfabetica();
break;
case 3: //mClassificadas();
break;
default: printf("\nOpcao Invalida");break;
}

}

printf("\nFim do Programa");
return 0;
getche();

}
 

Abraço

Editado por roccoC/C++
Link para o comentário
Compartilhar em outros sites

  • 0

Acabei de testar aqui no Dev, veja a imagem abaixo:

http://2.bp.blogspot.com/-RM95NZu8TZ8/U2ejEaXu1II/AAAAAAAABSg/GusfEH7d0bE/s1600/xcxcxc.PNG

Veja o código testado:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

void mostrar()
{
     char str[255];
     FILE *arq;
     if ((arq = fopen("Modelos.dat","r")) == NULL)
     {
         printf("\nO arquivo não foi encontrado");
         getche();
     }
     if(arq)
     {
         while(!feof(arq))
         {
              fgets(str,255,arq);
              printf("%s",str);
         }
     }

     fclose(arq);
     printf("\n\n");
     system("PAUSE");
}
/*void mAlfabetica(void);
void mClassificadas(void);*/

int main()
{
printf("\n.::Programa para classificacao de Modelos::.\n\n");
printf("\n\nMenu\n\n");

for( ; ; )
{
int opcao;

printf("\n1 - Mostrar nomes das modelos contido em um arquivo. ");
printf("\n2 - Mostrar nomes das modelos contido em um arquivo em ordem alfabetica.");
printf("\n3 - Mostrar nomes das modelos classificas.");
printf("\n0 - Sair ");
scanf("%i", &opcao);

if (opcao == 0)
break;

switch(opcao)
{
case 1: mostrar();
break;
case 2: //mAlfabetica();
break;
case 3: //mClassificadas();
break;
default: printf("\nOpcao Invalida");break;
}

}

printf("\nFim do Programa");
return 0;
getche();

}

Copie e cole este código no seu Dev, e veja se funciona.
Por aqui funciona perfeitamente, e olha que desta vez teste com a extenão .c; Antes eu tava testando com a extensão .cpp,

que é pra c++. Como estou no trabalho agora e por aqui é só correria,só vou poder te responder à noite quando eu chegar em casa.

Abraço

Editado por roccoC/C++
Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Caro Rocco

Deu certo, mas eu vi onde estava errando, a extensão do meu arquivo estava da seguinte maneira: Modelos.dat.txt. Deste jeito nunca ia funcionar nunca, mas agora esta rodando de boa. Agora vou desenvolver a segunda parte dele que é colocando um método de ordenação e mostrar esta lista em ordem alfabética. Teria alguma sugestão qual seria o melhor método: bolha, Inserção ou seleção. :D

Link para o comentário
Compartilhar em outros sites

  • 0

Meu amigo, olhando agora o meu trabalho a professora pede a seguinte coisa: onde buscando todos os nomes no arquivo e seus dados as modelos tem que se enquadrar nisso:

ALTURA: de 1.70 a 1.85 m
PESO: de 48.0 a 60.0 Kg
IDADE: de 17 a 21 anos
com estas informações é pra dizer se ela estão aprovadas ou não desta forma:
Exemplo parcial:
Dados do arquivo Saída esperada na tela
Marina Baixa 1.60 50.0 18 Altura fora dos padrões
Peso dentro dos padrões
Idade dentro dos padrões
Candidata reprovada
fiz este seguinte codigo:

#include <conio.h>

#include <stdio.h>
#include <string.h>
int main()
{
char nome[40];
float altura,peso;
int idade, i=0;
FILE *arq = fopen("Modelos.dat","r");
if (arq == NULL)
{
printf("\nArquivo não encontrado");
return 1;
}
printf("\nVeja os resultados das modelos aprovadas.");
while(fgets(nome,40,arq)!=NULL)
{
fscanf(arq, "%.2f %.2f %i ",&altura,&peso,&idade);
printf("\nModelo: %s",nome);
if(altura>=1.70 && altura<=1.85)
printf("\nEstatura dentro dos padroes.");
else
printf("\nEstatura fora dos padroes.");
if(peso>=48.0 && peso<=60.0)
printf("\nPeso dentro dos padroes.");
else
printf("\nPeso fora dos padroes.");
if(idade>=17 && idade<=21)
printf("\nIdade dentro dos padroes.");
else
printf("\nIdade fora dos padroes.");
if(altura>=1.70 && altura<=1,85 && peso>=48.0 && peso<=60.0 && idade>=17 && idade<=21)
printf("\nModelo aprovada!!!.");
else
printf("\nModelo reprovada.");
}
fclose(arq);
getch();
return 1;
}

só que o resultado só esta saindo assim, todas reprovadas conforme links abaixo:

http://1drv.ms/1kEx3AY

http://1drv.ms/1kExmvr

http://1drv.ms/1kExtHz

http://1drv.ms/1kExzPs

http://1drv.ms/1kExJGn

ai após isto mostrar somente aprovadas na ordem alfabética.

Grato

Nilton

Editado por Nilton Ribeiro
Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde caro Rocco

Venho te pedir mais uma mãozinha, claro se você puder. Lembra do meu programa que havia falado contigo, consegui fazer que ele mostrasse as aprovadas e reprovadas de acordo com seus critérios. Mas agora preciso somente dos nomes da aprovadas e colocar em ordem alfabética.

Estou tentando garimpar com um struct mas não deu nenhum resultado:

#define max 50

struct a {char nome[20]; //Crio a struct a e depois com a variavel nome
         };

struct a vetap[max]; //Defino ela como um vetor
int contap=0, j;// aqui um contador

no if aprovado coloquei isso:

if(result == 3)
{
   printf("\nCandidata aprovada!!!.\n\n");

   strcpy(vetap[contap],nome);
   ++contap;
}
else
   printf("\nCandidata reprovada!!!\n\n");

só que ele esta dando erro no strcpy, onde quero que ele pega as aprovadas e me mostre seus nomes.

Se puder me ajudar ficarei grato

Link para o comentário
Compartilhar em outros sites

  • 0

Os nomes das aprovadas estão em um arquivo, onde se encontra as reprovadas também. Preciso pegar somente as que foram aprovadas com os critérios pedido nos Ifs aprovadas mostrar na tela usando um printf() em ordem alfabética usando modo simples de ordenação. Se você quiser te mando o código do que eu já fiz e o o arquivo

Link para o comentário
Compartilhar em outros sites

  • 0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

void mostrar()
{
     char str[255];
     FILE *arq;
     if ((arq = fopen("Modelos.dat","r")) == NULL)
     {
         printf("\nO arquivo nao foi encontrado");
         getche();
     }
     if(arq)
     {
         while(!feof(arq))
         {
              fgets(str,255,arq);
              printf("%s",str);
         }
     }

     fclose(arq);
     printf("\n\n");
     system("PAUSE");
     system("cls");
}
void mClassificadas()
{
	char nome[16];
    float altura,peso;
    int idade, result=0;
    
	altura = 0;
	peso = 0;
	idade = 0;


    FILE *arq;
    arq = fopen("Modelos.dat","r");
    if (arq == NULL)
    {
            printf("\nArquivo nao encontrado");
            return 1;
    }
    printf("\nClassificacao das Modelos.\n\n");

    while(fgets(nome,16,arq)!=NULL)
    {
          fscanf(arq, "%f %f %i ",&altura,&peso,&idade);
          printf("\nCandidata: %s\n",nome);

          if(altura>=1.70 && altura<=1.85)
		  {
 			 printf("\nEstatura dentro dos padroes.");
 			 altura = 1;
     	  }
          else
          {
          	printf("\nEstatura fora dos padroes.");
            altura = 0;
          }

          if(peso>=48.0 && peso<=60.0)
		  {
             printf("\nPeso dentro dos padroes.");
             peso = 1;
          }
		  else
		  {
		  	printf("\nPeso fora dos padroes.");
		  	peso = 0;
		  }

          if(idade>=17 && idade<=21)
		  {
             printf("\nIdade dentro dos padroes.");
             idade = 1;
          }
          else
          {
            printf("\nIdade fora dos padroes.");
            idade = 0;
          }
          
          result = altura + peso + idade;

          if(result == 3)
             printf("\nCandidata aprovada!!!.\n\n");
          else
             printf("\nCandidata reprovada!!!\n\n");
    }
    fclose(arq);
    printf("\n\n");
    system("PAUSE");
    system("cls");
}

int main()
{
	for( ; ; )
	{
		int opcao;
		
		printf("\n\t\t.::Programa para classificacao de Modelos::.\n\n");
		printf("\n\nMenu\n\n");
		
		printf("\n1 - Mostrar nomes das modelos contido em um arquivo. ");
		printf("\n2 - Mostrar atraves de padroes se modelos aprovadas ou reprovadas ");
		printf("\n3 - Mostrar nomes das modelos aprovadas em ordem alfabética.");
		printf("\n0 - Sair ");
		printf("\n\nDigite sua opcao: ");
		scanf("%i", &opcao);
		
		if (opcao == 0)
			break;
			
		switch(opcao)
		{
			case 1: mostrar();
					break;
			case 2: mClassificadas();
					break;
			case 3: //mAlfabetica();
					break;
			default: printf("\nOpcao Invalida");break;
		}
		
	}

printf("\nFim do Programa");
return 0;
getche();

}

arquivo: https://www.dropbox.com/s/zd5n9s90abzl1tw/Modelos.dat

Isso é o que eu já tenho finalizado, pra mim criar este vetor de char tenho que abrir o arquivo primeiro e puxar as aprovadas, mas eu uso os mesmos ifs da função mClassificadas

Link para o comentário
Compartilhar em outros sites

  • 0

Enquanto testo por aqui, dê uma olhada neste trecho de código abaixo:

 
 
char Linha [ 100 ];
printf("\n\n");
char *resul;
i = 1;
while (!feof(arq)){
// Lê uma linha (inclusive com o '\n')
resul = fgets(Linha, 11, arq);  // o 'fgets' lê até 11 caracteres ou até o '\n'
if (resul)  // Se foi possível ler
printf("\nLinha %d : %s",i,Linha);
i++;
}
fclose(arq);getche();
 

Assim fica fácil chamar apenas os nomes das modelos aprovadas.

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpa estou tentando encaixar esta parte do código em meu programa mas esta dando erro como mostra na foto, se não me engano 6 modelos estão aprovadas e aparece todos os nomes, onde posso encaixar esta parte.

foto: https://www.dropbox.com/s/p0ak8mnh4cclecg/tela.png

coloquei o código na ultima função

void mAlfabetica()
{
	FILE *arq;
    arq = fopen("Modelos.dat","r");
    if (arq == NULL)
    {
            printf("\nArquivo nao encontrado");
            return 1;
    }
	
	printf("\nModelos Aprovadas");
	char Linha [ 16 ];
    int i;
	printf("\n\n");
	char *resul;
	i = 1;
               
	while (!feof(arq))
	{

       resul = fgets(Linha, 16, arq);
       if (resul)
          printf("\nLinha %d : %s",i,Linha);
          i++;
    }
    
    fclose(arq);
    getche();
}

Niltom

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.




  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...