boa noite estou com um problema em um codigo toda vez que executo parece Erro ao abrir o arquivo ESPETACULOS.txt sendo que ja verifiquei o nome e estão na mesmo pasta
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SESSIONS 100
#define MAX_SEATS 112
#define MAX_USERS 10
// Estrutura para armazenar informações de uma sessão
typedef struct {
char id[4];
char title[20];
char director[20];
int duration;
int ageRecommendation;
char date[9];
char time[6];
} Session;
// Estrutura para armazenar informações de um assento
typedef struct {
char session[4];
char row;
char seats[17];
} Seat;
// Estrutura para armazenar informações de um usuário
typedef struct {
char login[21];
char password[21];
char type;
} User;
// Função para carregar as sessões do arquivo ESPETACULOS.TXT
int loadSessions(Session sessions[], int *sessionCount) {
FILE *file = fopen("ESPETACULOS.txt", "r");
if (file == NULL) {
printf("Erro ao abrir o arquivo ESPETACULOS.txt\n");
return 0;
}
// Loop para ler cada linha do arquivo e armazenar as informações nas estruturas de sessão
while (!feof(file)) {
if (fscanf(file, "%3s %20s %20s %d %d %8s %5s",
sessions[*sessionCount].id,
sessions[*sessionCount].title,
sessions[*sessionCount].director,
&sessions[*sessionCount].duration,
&sessions[*sessionCount].ageRecommendation,
sessions[*sessionCount].date,
sessions[*sessionCount].time) != 7) {
break;
}
(*sessionCount)++;
}
fclose(file);
return 1;
}
// Função para salvar as sessões no arquivo ESPETACULOS.TXT
void saveSessions(Session sessions[], int sessionCount) {
FILE *file = fopen("ESPETACULOS.txt", "w");
if (file == NULL) {
printf("Erro ao abrir o arquivo ESPETACULOS.txt\n");
return;
}
// Loop para escrever cada sessão no arquivo
for (int i = 0; i < sessionCount; i++) {
fprintf(file, "%s %s %s %d %d %s %s\n",
sessions[i].id,
sessions[i].title,
sessions[i].director,
sessions[i].duration,
sessions[i].ageRecommendation,
sessions[i].date,
sessions[i].time);
}
fclose(file);
}
// Função para carregar os assentos do arquivo ASSENTOS.TXT
int loadSeats(Seat seats[], int *seatCount) {
FILE *file = fopen("ASSENTOS.txt", "r");
if (file == NULL) {
printf("Erro ao abrir o arquivo ASSENTOS.txt\n");
return 0;
}
// Loop para ler cada linha do arquivo e armazenar as informações nas estruturas de assento
while (!feof(file)) {
if (fscanf(file, "%3s %c %16s",
seats[*seatCount].session,
&seats[*seatCount].row,
seats[*seatCount].seats) != 3) {
break;
}
(*seatCount)++;
}
fclose(file);
return 1;
}
// Função para salvar os assentos no arquivo ASSENTOS.TXT
void saveSeats(Seat seats[], int seatCount) {
FILE *file = fopen("ASSENTOS.txt", "w");
if (file == NULL) {
printf("Erro ao abrir o arquivo ASSENTOS.txt\n");
return;
}
// Loop para escrever cada assento no arquivo
for (int i = 0; i < seatCount; i++) {
fprintf(file, "%s %c %s\n",
seats[i].session,
seats[i].row,
seats[i].seats);
}
fclose(file);
}
// Função para carregar os usuários do arquivo USUARIOS.TXT
int loadUsers(User users[], int *userCount) {
FILE *file = fopen("USUARIOS.txt", "r");
if (file == NULL) {
printf("Erro ao abrir o arquivo USUARIOS.txt\n");
return 0;
}
// Loop para ler cada linha do arquivo e armazenar as informações nas estruturas de usuário
while (!feof(file)) {
if (fscanf(file, "%20s %20s %c",
users[*userCount].login,
users[*userCount].password,
&users[*userCount].type) != 3) {
break;
}
(*userCount)++;
}
fclose(file);
return 1;
}
// Função para salvar os usuários no arquivo USUARIOS.TXT
void saveUsers(User users[], int userCount) {
FILE *file = fopen("USUARIOS.txt", "w");
if (file == NULL) {
printf("Erro ao abrir o arquivo USUARIOS.txt\n");
return;
}
// Loop para escrever cada usuário no arquivo
for (int i = 0; i < userCount; i++) {
fprintf(file, "%s %s %c\n",
users[i].login,
users[i].password,
users[i].type);
}
fclose(file);
}
// Função para realizar o login do usuário
User *login(User users[], int userCount) {
char login[21];
char password[21];
printf("Login: ");
scanf("%20s", login);
printf("Senha: ");
scanf("%20s", password);
// Verificar se as credenciais estão corretas
for (int i = 0; i < userCount; i++) {
if (strcmp(users[i].login, login) == 0 && strcmp(users[i].password, password) == 0) {
User *user = malloc(sizeof(User));
strcpy(user->login, users[i].login);
strcpy(user->password, users[i].password);
user->type = users[i].type;
return user;
}
}
printf("Credenciais inválidas.\n");
return NULL;
}
// Função para cadastrar uma nova sessão
void addSession(Session sessions[], int *sessionCount) {
printf("ID da sessão: ");
scanf("%3s", sessions[*sessionCount].id);
printf("Título: ");
scanf(" %[^\n]", sessions[*sessionCount].title);
printf("Diretor: ");
scanf(" %[^\n]", sessions[*sessionCount].director);
printf("Duração (em minutos): ");
scanf("%d", &sessions[*sessionCount].duration);
printf("Recomendação de faixa etária: ");
scanf("%d", &sessions[*sessionCount].ageRecommendation);
printf("Data da sessão (dd/mm/aa): ");
scanf("%8s", sessions[*sessionCount].date);
printf("Horário da sessão (hh:mm): ");
scanf("%5s", sessions[*sessionCount].time);
(*sessionCount)++;
}
// Função para excluir uma sessão existente
void deleteSession(Session sessions[], int *sessionCount) {
char sessionId[4];
printf("ID da sessão a ser excluída: ");
scanf("%3s", sessionId);
// Encontrar a sessão com o ID correspondente e removê-la
int found = 0;
for (int i = 0; i < *sessionCount; i++) {
if (strcmp(sessions[i].id, sessionId) == 0) {
for (int j = i; j < *sessionCount - 1; j++) {
sessions[j] = sessions[j + 1];
}
(*sessionCount)--;
found = 1;
break;
}
}
if (found) {
printf("Sessão excluída com sucesso.\n");
} else {
printf("Sessão não encontrada.\n");
}
}
// Função principal
int main() {
Session sessions[MAX_SESSIONS];
int sessionCount = 0;
Seat seats[MAX_SEATS];
int seatCount = 0;
User users[MAX_USERS];
int userCount = 0;
User *currentUser = NULL;
// Carregar sessões, assentos e usuários dos arquivos
if (!loadSessions(sessions, &sessionCount) ||
!loadSeats(seats, &seatCount) ||
!loadUsers(users, &userCount)) {
return 1;
}
// Loop principal do programa
while (1) {
// Verificar se há um usuário logado
if (currentUser == NULL) {
currentUser = login(users, userCount);
if (currentUser == NULL) {
break;
}
}
// Menu de opções
printf("\n--- Menu ---\n");
if (currentUser->type == 'G') {
printf("1. Cadastrar sessão\n");
printf("2. Excluir sessão\n");
// Mais opções do gerente...
}
printf("0. Sair\n");
printf("Escolha uma opção: ");
int option;
scanf("%d", &option);
switch (option) {
case 1:
if (currentUser->type == 'G') {
addSession(sessions, &sessionCount);
saveSessions(sessions, sessionCount);
}
break;
case 2:
if (currentUser->type == 'G') {
deleteSession(sessions, &sessionCount);
saveSessions(sessions, sessionCount);
}
break;
case 0:
// Logout do usuário
free(currentUser);
currentUser = NULL;
break;
default:
printf("Opção inválida.\n");
break;
}
}
// Salvar sessões, assentos e usuários nos arquivos
saveSessions(sessions, sessionCount);
saveSeats(seats, seatCount);
saveUsers(users, userCount);
return 0;
}