Ir ao conteúdo
  • Cadastre-se

estruturas ficheiros linguagem c


champion87

Posts recomendados

estou com um problema no programa abaixo indicado. nao consigo guardar informaçao no ficheiro nem consigo abrir o ficheiro.

o programa e o seguinte:

Elabore um programa em C que armazene a informacao respeitante a ocupacao dos

10 quartos (identificado pelo numero e ocupacao) de um determinado hotel.

A aplicacao deve, atraves de um esquema de menus:

1- Ocupar/desocupar quartos;

2- Ver estado de ocupacao, apresentando quantos quartos estão livres e ocupados.

3-Imprimir no ecra a percentagem de quartos ocupados;

4-Verificar se um dado quarto e ocupado/desocupado;

5-Imprimir no ecra o numero do quarto com maior tempo de ocupacao;

6- Armazenar num ficheiro de texto os dados dos 10 quartos;

7- Inicializar a struct com os dados guardados no ficheiro.

[ code = c ]

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <ctype.h>

#include <conio.h>

#include <Math.h>

struct quarto{

int num;

char estado[15];

};

void ficheiro (struct quarto room[]){

int i;

FILE *room1=fopen("quartos.txt","wr");

if (room1==NULL){

printf("\nImpossivel Abrir Ficheiro\n");

}else{

printf("\nFicheiro Aberto Com Sucesso");

}

for(i=1;i<11;i++){

printf("\tQuarto Numero: %d\n", i);

printf("\tEstado do Quarto: %s\n", room.estado);

printf("\n");

}

}

void abrirficheiro (struct quarto room[]){

int i;

FILE *room1=fopen("quartos.txt","wr");

if (room1==NULL){

printf("\nImpossivel Abrir Ficheiro\n");

}else{

printf("\nFicheiro Aberto Com Sucesso");

}

for(i=1;i<11;i++){

printf("\tQuarto Numero: %d\n", i);

printf("\tEstado do Quarto: %s\n", room.estado);

printf("\n");

}

}

main()

{

struct quarto room[10];

int op, i;

do{

system("cls");

printf("\n");

printf("\t __________________________MENU____________________________\n");

printf("\t| |\n");

printf("\t| 1-> Ocupar ou Desocupar quarto |\n");

printf("\t| 2-> Verificar estado de todos os Quartos |\n");

printf("\t| 3-> Percentagem de quartos ocupados |\n");

printf("\t| 4-> Verificar estado do quarto Num: |\n");

printf("\t| 5-> Quarto com maior tempo de ocupacao |\n");

printf("\t| 6-> Armazenar |\n");

printf("\t| 7-> Inicializar |\n");

printf("\t| 0-> Sair |\n");

printf("\t|__________________________________________________________|\n");

printf("\n");

printf("\tInsira uma opcao:");

scanf("%d",&op);

printf("\n\n");

if(op==1){

for(i=1;i<11;i++){

fflush(stdin);

printf("\t\t\tQuarto Numero %d\n", i);

printf("\t\t\tEstado do Quarto: ");

gets(room.estado);

fflush(stdin);

}

}

if(op==2){

}

if(op==3){

}

if(op==4){

}

if(op==5){

}

if(op==6){

ficheiro(room);

}

if(op==7){

abrirficheiro(room);

}

if(op>7){

printf("\t*********OPCAO INVALIDA**********\n");

printf("\t _______________________________\n");

printf("\t| |\n");

printf("\t| Prima Enter e Tente Novamente |\n");

printf("\t|_______________________________|\n");

}

if(op==0){

printf("\t _______________________________\n");

printf("\t| |\n");

printf("\t| Prima Enter Para Sair |\n");

printf("\t|_______________________________|\n");

}

getch();

}while(op!=0);

//system("PAUSE");

return 0;

}[ /code ]

Link para o comentário
Compartilhar em outros sites

O seu código funcionou certo aqui.

Já viu se possui permissão no diretório onde será criado o arquivo?

Exemplo do resultado da saída do seu código usando as seguintes opções:

opção 6:


Ficheiro Aberto Com Sucesso Quarto Numero: 1
Estado do Quarto: ocupado

Quarto Numero: 2
Estado do Quarto: ocupado

Quarto Numero: 3
Estado do Quarto: ocupado

Quarto Numero: 4
Estado do Quarto: desocupado

Quarto Numero: 5
Estado do Quarto: desocupado

Quarto Numero: 6
Estado do Quarto: desocupado

Quarto Numero: 7
Estado do Quarto: ocupado

Quarto Numero: 8
Estado do Quarto: desocupado

Quarto Numero: 9
Estado do Quarto: ocupado

Quarto Numero: 10
Estado do Quarto: desocupado

Opção 7:



Ficheiro Aberto Com Sucesso Quarto Numero: 1
Estado do Quarto: ocupado

Quarto Numero: 2
Estado do Quarto: ocupado

Quarto Numero: 3
Estado do Quarto: ocupado

Quarto Numero: 4
Estado do Quarto: desocupado

Quarto Numero: 5
Estado do Quarto: desocupado

Quarto Numero: 6
Estado do Quarto: desocupado

Quarto Numero: 7
Estado do Quarto: ocupado

Quarto Numero: 8
Estado do Quarto: desocupado

Quarto Numero: 9
Estado do Quarto: ocupado

Quarto Numero: 10
Estado do Quarto: desocupado

Link para o comentário
Compartilhar em outros sites

Apenas troque o "printf" por "fprintf", e informe o descritor do arquivo que será armazenado:


void ficheiro (struct quarto room[])
{

int i;
FILE *room1=fopen("quartos.txt","wr");

if (room1==NULL)
{
printf("\nImpossivel Abrir Ficheiro\n");
}
else
{
printf("\nFicheiro Aberto Com Sucesso");
}

for ( i = 1; i < 11; i++ )
{
fprintf(room1, "\tQuarto Numero: %d\n", i);
fprintf(room1, "\tEstado do Quarto: %s\n", room[i].estado);
fprintf(room1, "\n");
}

fclose(room1);

}

Lembrete: Sempre que abrir um arquivo, você precisa fecha-lo no final.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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!