mew Posted January 25, 2016 at 03:08 PM Report Share #592470 Posted January 25, 2016 at 03:08 PM (edited) gostava de saber qual o erro que estou a cometer obrigado desde já estrutura: typedef struct s_datahora { unsigned short dia; unsigned short mes; unsigned short ano; unsigned short hora; unsigned short minutos; } data2; typedef enum { basico = 1, confortavel = 2, luxuoso = 3 } conforto; typedef struct s_viagem { char localpartida[MAX]; data2 datapartida; char localchegada[MAX]; float duracao; float preco; int contacto; unsigned short lugares; conforto conforto; users *lista_usersV; } viagem; ficheiro: void cria_viagem() { FILE *cria_viagem; cria_viagem=fopen(viagemdb, "r"); viagem aux_viag; int newl='\n'; printf("\n:Qual o conforto do carro (basico, confortavel ou luxuoso)"); scanf("%d",&aux_viag.conforto); fputs(aux_viag.conforto,cria_viagem); ........ erro aqui: error: incompatible type for argument 1 of 'fputs' fputc(newl,cria_viagem); printf("\nQual o preço por utilizador:"); scanf("%f",&aux_viag.preco); fputs(aux_viag.preco,cria_viagem); ....... erro aqui: error: incompatible type for argument 1 of 'fputs' fputc(newl,cria_viagem); fclose(cria_viagem); system("Pause"); Edited January 25, 2016 at 08:42 PM by thoga31 Tags code + GeSHi Link to comment Share on other sites More sharing options...
tiago.f Posted January 25, 2016 at 03:35 PM Report Share #592473 Posted January 25, 2016 at 03:35 PM (edited) Olá, Aqui ficam os meus comentários até alguem com mais conhecimento de C apareça para te dar uma ajuda 🙂 - cria_viagem=fopen(viagemdb, "r"); -> faltam aspas no viagemdb - fputs(aux_viag.conforto,cria_viagem) -> 1º parametro deve ser const char*, estás a passar um enum - fputs(aux_viag.preco,cria_viagem) -> 1º parametro deve ser const char*, estás a passar um inteiro sugeria usares fprintf em vez de fputs e fputc. Exemplo: em vez de fputs(aux_viag.preco,cria_viagem); ....... erro aqui: error: incompatible type for argument 1 of 'fputs' fputc(newl,cria_viagem); podias usar fprintf(cria_viagem, "%d\n", aux_viag.preco); Cumps Edited January 25, 2016 at 08:43 PM by thoga31 GeSHi Link to comment Share on other sites More sharing options...
mew Posted January 25, 2016 at 03:44 PM Author Report Share #592475 Posted January 25, 2016 at 03:44 PM Achas que deveria mudar para fprintf em todos? e já agora sabes o porquê de no run me encravar quando pergunta o mes da viagem? E como posso fazer uma especie de funçao que me mostre as viagens ja criadas pelos utilizadores? obrigado! Link to comment Share on other sites More sharing options...
tiago.f Posted January 25, 2016 at 04:19 PM Report Share #592481 Posted January 25, 2016 at 04:19 PM Achas que deveria mudar para fprintf em todos? é contigo, há varas maneiras de fazer a mm coisa e já agora sabes o porquê de no run me encravar quando pergunta o mes da viagem? onde está esse codigo? Link to comment Share on other sites More sharing options...
mew Posted January 25, 2016 at 04:22 PM Author Report Share #592482 Posted January 25, 2016 at 04:22 PM Parece que já não encrava. Dá para dar uma ajudinha numa funçao para ver as viagens já criadas? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 25, 2016 at 05:03 PM Report Share #592490 Posted January 25, 2016 at 05:03 PM e que tal, em vez de queres continuares a implementares mais coisas, testas corretamente o que já tens ? tens a certeza que o código apresentado, mesmo corrigido com os comentários apresentados, fazes tudo direitinho ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
mew Posted January 25, 2016 at 05:07 PM Author Report Share #592492 Posted January 25, 2016 at 05:07 PM Acho que ´já está a correr bem, pelo menos já grava no ficheiro Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 25, 2016 at 05:14 PM Report Share #592493 Posted January 25, 2016 at 05:14 PM grava ? como ? void cria_viagem() { FILE *cria_viagem; cria_viagem=fopen(viagemdb, "r"); // <--- abertura para leitura IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
mew Posted January 25, 2016 at 05:17 PM Author Report Share #592494 Posted January 25, 2016 at 05:17 PM É w que tenho que por? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 25, 2016 at 05:19 PM Report Share #592495 Posted January 25, 2016 at 05:19 PM depende, se pretendes que o ficheiro limpo no momento da abertura, sim, se pretendes simplesmente adicionar no fim do que já existe, terás de colocar "a" IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
mew Posted January 25, 2016 at 05:23 PM Author Report Share #592496 Posted January 25, 2016 at 05:23 PM Já mudei para o "a" e depois que achas que devo melhorar mais? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 25, 2016 at 05:26 PM Report Share #592497 Posted January 25, 2016 at 05:26 PM não sei ... apresenta o código que tens agora ps : usa as tags apropriadas, e se não sabes como, tens a explicação no funda da página na secção de ajuda IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
mew Posted January 25, 2016 at 05:35 PM Author Report Share #592498 Posted January 25, 2016 at 05:35 PM (edited) void cria_viagem() { FILE *cria_viagem; cria_viagem = fopen("viagemdb", "a"); viagem aux_viag; utilizador aux_ut; int newl = '\n'; int n; utilizador *i; if (cria_viagem == NULL) { cria_viagem = fopen("viagemdb", "a"); fclose(cria_viagem); } do { printf("\n\n *************** MENU ***************************\n"); printf(" ***************************************************\n"); printf(" *************** ******** ******\n"); printf(" *** 1 ->ver users 2 -> criar viagem ****\n"); printf(" *** 3 -> juntar a uma viagem 4- ver viagens ****\n"); printf(" *** 5-exit ****\n"); printf(" ***************************************************\n\n"); printf("Introduza a sua opcao: "); printf("\nOpcao:"); scanf("%d", &n); switch (n) { case 1: { for (i = 0; i < 20; i++) { printf("username: %s\n", i->novou); } } case 2: { cria_viagem = fopen("viagemdb", "a"); printf("\n Criar viagem\n"); printf("\n Qual o local de partida:"); setbuf(stdin, NULL); scanf("%s", &aux_viag.localpartida); fprintf(cria_viagem, "%s\n", aux_viag.localpartida); fputc(newl, cria_viagem); printf("\n local de chegada:"); setbuf(stdin, NULL); scanf("%s", aux_viag.localchegada); fprintf(cria_viagem, "%s\n", aux_viag.localchegada); fputc(newl, cria_viagem); printf("\n Qual o mes da partida:"); setbuf(stdin, NULL); scanf("%hu", &aux_viag.datapartida.mes); fprintf(cria_viagem, "%hu\n", aux_viag.datapartida.mes); fputc(newl, cria_viagem); printf("\n local o dia da partida:"); setbuf(stdin, NULL); scanf("%hu", &aux_viag.datapartida.dia); fprintf(cria_viagem, "%hu\n", aux_viag.datapartida.dia); fputc(newl, cria_viagem); printf("\n Qual a hora da partida:"); setbuf(stdin, NULL); scanf("%hu", &aux_viag.datapartida.hora); fprintf(cria_viagem, "%hu\n", aux_viag.datapartida.hora); fputc(newl, cria_viagem); printf("\n:Qual o tempo de duracao da viagem"); scanf("%f", &aux_viag.duracao); fprintf(cria_viagem, "%f\n", aux_viag.preco); fputc(newl, cria_viagem); printf("\n:Quantos lugares disponiveis MAX-4"); scanf("%d", &aux_viag.lugares); fprintf(cria_viagem, "%d\n", aux_viag.lugares); fputc(newl, cria_viagem); printf("\n:Qual o conforto do carro (basico=1, confortavel=2, luxuoso=3)"); scanf("%d", &aux_viag.conforto); fprintf(cria_viagem, "%d\n", aux_viag.preco); fputc(newl, cria_viagem); printf("\nQual o preço por utilizador:"); scanf("%f", &aux_viag.preco); fprintf(cria_viagem, "%f\n", aux_viag.preco); fputc(newl, cria_viagem); fclose(cria_viagem); system("Pause"); break; } Edited January 25, 2016 at 08:44 PM by thoga31 Tags code + GeSHi Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 25, 2016 at 05:37 PM Report Share #592499 Posted January 25, 2016 at 05:37 PM ps : usa as tags apropriadas, e se não sabes como, tens a explicação no funda da página na secção de ajuda IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
thoga31 Posted January 25, 2016 at 08:45 PM Report Share #592510 Posted January 25, 2016 at 08:45 PM Ver aqui como colocar correctamente o código no fórum. Eu já corrigi os posts desta thread. Knowledge is free! Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 25, 2016 at 09:04 PM Report Share #592513 Posted January 25, 2016 at 09:04 PM uma leitura muito rápida do código deu para ver: o primeiro if não faz sentido nenhum o código do primeiro ramo do switch (case 1) está claramente errado o primeiro scanf do segundo ramo (case 2) está errado IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now