obrigado primeiro de tudo por ter vindo ver meu tópico
Preciso de ajuda com este programa -
#include <stdio.h>
#include <stdlib.h>
mostrar_menu ()
{
char opcao;
puts("\n\tViaturas? É comigo!\n");
puts("0 - Sair do programa");
puts("1 - Ler o ficheiro de texto");
puts("2 - Mostrar todas as marcas");
puts("3 - Mostrar o preço de uma viatura");
puts("4 - Escrever dados num ficheiro de texto\n");
puts("5 - Mostrar modelos de uma marca");
puts("6 - Mostrar preço de uma viatura específica");
puts("7 - Alterar o preço de um veículo específico\n");
puts("8 - Escrever dados num ficheiro binário");
puts("9 - Ler dados de um ficheiro binário\n");
puts("10 - Histograma");
puts("11 - Intervalos de preço por modelo");
puts("12 - Escrita da base de dados ordenadamente\n");
printf("Escolha uma opcao: ");
scanf("%c", &opcao);
switch(opcao)
{
case '0': puts("Adeus"); break;
case '1': {ler_ficheiro(); break;}
case '2': puts("2 - Mostrar todas as marcas"); break;
case '3': puts("3 - Mostrar o preço de uma viatura"); break;
case '4': puts("4 - Escrever dados num ficheiro de texto\n"); break;
default : { puts("Opcao invalida! Escolha uma das opcoes disponiveis no Menu:\n"); mostrar_menu();}
}
}
/* -------------------------------------------------*/
int ler_ficheiro()
{
char s[30];
FILE *fp;
puts("Introduza o nome do ficheiro: ");
gets(s);
gets(s);
fp= fopen(s, "r");
if (fp==NULL)
printf("não foi possivel ler o ficheiro %s \n", s);
else
{
ler_fich_texto();
}
}
/* -------------------------------------------------*/
int ler_fich_texto(const char *fp)
{
int parametros;
int result;
FILE *stream;
char s;
parametros = 0;
fopen(fp, "r");
if ( stream )
{
parametros = 0;
while ( fgets(&s, 150, stream) )
{
++parametros;
}
fclose(stream);
printf("Foram lidos %d registos\n", parametros);
}
else
{
printf("Erro ao abrir o ficheiro %s para ler\n", fp);
result = 0;
}
mostrar_menu ();
}
/* -------------------------------------------------*/
main ()
{
int i=1;
while(i==1)
{
mostrar_menu();
i++;
}
}
Basicamente estou a compilar usando CYGWIN - e o que acontece é que dá Segmentation Fault - (core dumped).
O que eu quero que isso faca e que leia um ficheiro de .txt (base de dados) e diga quantos parametros essa base de dados tem.
Apenas a opcao 0 e 1 funcionam - as outras ainda não tão acabadas!
Pergunta
Caladan
Oi gente,
obrigado primeiro de tudo por ter vindo ver meu tópico
Preciso de ajuda com este programa -
#include <stdio.h> #include <stdlib.h> mostrar_menu () { char opcao; puts("\n\tViaturas? É comigo!\n"); puts("0 - Sair do programa"); puts("1 - Ler o ficheiro de texto"); puts("2 - Mostrar todas as marcas"); puts("3 - Mostrar o preço de uma viatura"); puts("4 - Escrever dados num ficheiro de texto\n"); puts("5 - Mostrar modelos de uma marca"); puts("6 - Mostrar preço de uma viatura específica"); puts("7 - Alterar o preço de um veículo específico\n"); puts("8 - Escrever dados num ficheiro binário"); puts("9 - Ler dados de um ficheiro binário\n"); puts("10 - Histograma"); puts("11 - Intervalos de preço por modelo"); puts("12 - Escrita da base de dados ordenadamente\n"); printf("Escolha uma opcao: "); scanf("%c", &opcao); switch(opcao) { case '0': puts("Adeus"); break; case '1': {ler_ficheiro(); break;} case '2': puts("2 - Mostrar todas as marcas"); break; case '3': puts("3 - Mostrar o preço de uma viatura"); break; case '4': puts("4 - Escrever dados num ficheiro de texto\n"); break; default : { puts("Opcao invalida! Escolha uma das opcoes disponiveis no Menu:\n"); mostrar_menu();} } } /* -------------------------------------------------*/ int ler_ficheiro() { char s[30]; FILE *fp; puts("Introduza o nome do ficheiro: "); gets(s); gets(s); fp= fopen(s, "r"); if (fp==NULL) printf("não foi possivel ler o ficheiro %s \n", s); else { ler_fich_texto(); } } /* -------------------------------------------------*/ int ler_fich_texto(const char *fp) { int parametros; int result; FILE *stream; char s; parametros = 0; fopen(fp, "r"); if ( stream ) { parametros = 0; while ( fgets(&s, 150, stream) ) { ++parametros; } fclose(stream); printf("Foram lidos %d registos\n", parametros); } else { printf("Erro ao abrir o ficheiro %s para ler\n", fp); result = 0; } mostrar_menu (); } /* -------------------------------------------------*/ main () { int i=1; while(i==1) { mostrar_menu(); i++; } }Basicamente estou a compilar usando CYGWIN - e o que acontece é que dá Segmentation Fault - (core dumped).
O que eu quero que isso faca e que leia um ficheiro de .txt (base de dados) e diga quantos parametros essa base de dados tem.
Apenas a opcao 0 e 1 funcionam - as outras ainda não tão acabadas!
O ficheiro .txt que estou falando é ESTE AQUI
Minha programacao e terrivel, qualquer ajuda seria tremenda!
Editado por CaladanLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.