Ir ao conteúdo
  • Cadastre-se
Victor Cesar

programação

Recommended Posts

Galera, tô fazendo um trabalhinho e meu código tá dando um erro "466 2 [Error] expected declaration or statement at end of input"

E eu n consigo resolver me ajudem !!! 

#include <stdio.h>
#include <stdlib.h>                                   
#define PACIENTES "pacientes.bin" //definindo as constantes, o local e nome dos arquivos a serem criados
#define _CRT_SECURE_NO_WARNINGS
    #include<string.h>
 
 
 
 
 
//definindo STRUCTS para recebimento dos dados:
 
typedef struct paciente {
char nome[50];
int idade;
int cpf;
char endereco[100];
int cod;
char alergia[20];
int data_alergia;
char tratamento[100];
 
}usuario;
 
 
 
//PROCEDIMENTOS E FUNCOES PARA MANIPULAR PACIENTES
 
 
void cadastrapaciente(char *nomeArq)
{
int i;
usuario paciente;
FILE*arq;
 paciente.cod=0;
system("cls");
do{    
printf("\n=digite o codigo: \n=digite zero para voltar: ");//ENQUANTO A BUSCA RETORNAR 0 (ZERO) O PROGRAMA PEDIRÁ UM OUTRO CPF POIS O CÓDIGO DIGITADO JÁ ESTÁ EM USO
scanf("i",&paciente.cod);
fflush(stdin);                                   //limpar o buffer do teclado
if (paciente.cod== 0){
return;
}
 
if(paciente.cod>0){
 
 
 
busca(paciente.cod, &i);   //verifica se o codigo já está em uso
if(i==0)
{
printf("\nCodigo ja esta em uso!");
}
 
else{
i = 0;
printf("\nCodigo Invalido\n\n");
system("pause");
 
}
 
 
 
}
 
 
 
                               
}while (i == 0);
 
 
if (!(arq = fopen(nomeArq, "ab"))){ //TESTA SE O ARQUIVO FOI ENCONTRADO E ABERTO
printf("\n\nErro ao abrir o arquivo!\n\n");
system("pause");
return;
}
printf("\nInforme o nome do paciente: ");//INSERE O NOME DO PACIENTE
fflush(stdin); gets(paciente.nome); fflush(stdin);
  
do
{
printf("\nDigite a Idade: ");// INSERE A IDADE PACIENTE
scanf("%i", &paciente.idade); fflush(stdin);
if (paciente.idade <= 0 || paciente.idade >100){ //TESTA SE A IDADE É VÁLIDA
printf("\nIdade Invalida\n");
}
} while (paciente.idade <= 0 || paciente.idade >100);
 
do
{
printf("\nDigite o cpf: ");
scanf("%i", &paciente.cpf);
if (paciente.cpf> 99999999999 || paciente.cpf == 00000000000){ //TESTA SE O TELEFONE É VÁLIDO
printf("\nCpf Invalido\n");
}
} while (paciente.cpf > 99999999999 || paciente.cpf == 00000000000);
 
 
printf("\nInforme o endereco do paciente: ");//endereço
fflush(stdin); gets(paciente.endereco); fflush(stdin);
 
 
printf("\nDigite a alergia do paciente:");
fflush(stdin); gets(paciente.alergia);fflush(stdin);
 
 do{
  printf("\nData da alergia");
  scanf("%i",&paciente.data_alergia);
  if(paciente.data_alergia>000000 || paciente.data_alergia<000000);
  {
  printf("\nData invalida\n");
  }
 /*while(paciente.data_alergia>000000 || paciente.data_alergia<000000)
 { }*/
 
}while(1);  // Falta definir a condição
 
 
 
if (fwrite(&paciente, sizeof(usuario), 1, arq) == 1){ //VERIFICA SE OS DADOS FORAM GRAVADOS NO ARQUIVO
printf("\n\n Paciente gravado com Sucesso!\n\n");
fclose(arq); //FECHA O ARQUIVO
system("pause");
}
 
 
else{ //SE OS DADOS NAO FOREM GRAVADOS EXIBE A MENSAGEM DE ERRO
printf("\n\nErro ao Salvar o Usuario no arquivo!\n\n");
fclose(arq);
system("pause");
}
 
}
 
 
 
int busca(int cod, int *i){ //FUNÇÃO PARA BUSCAR DADOS NO ARQUIVO USUARIOS
usuario paciente;
FILE*arq;
if (!(arq = fopen(PACIENTES, "a+b"))){ //TESTA SE O ARQUIVO FOI ABERTO
printf("\nErro ao abrir o Arquivo!\n\n");
system("pause");
return;
}
fread(&paciente, sizeof(usuario), 1, arq);//FAZ A LEITURA DOS DADOS NO ARQUIVO
while (!feof(arq)){ //ENQUANTO NÃO CHEGAR AO FIM DO ARQUIVO A BUSCA SERÁ FEITA
if (cod == paciente.cod){
*i = 0;//SE O CODIGO DE USUARIO JÁ ESTIVER EM USO RETORNA 0
fclose(arq);
return;
}
fread(&paciente, sizeof(usuario), 1, arq);
}
if (cod != paciente.cod){
*i = 1;//SE O CODIGO DO paciente NÃO ESTIVER EM USO RETORNA 1
}
fclose(arq);
}
void alterarpaciente(char *nomeArq) {//PROCEDIMENTO PARA ALTERAR OS DADOS DO USUARIO 
int cod, op, alterou = 0;
usuario paciente;
FILE *arq;
 
if (!(arq = fopen(nomeArq, "rb+"))) {
printf("\nErro ao abrir o arquivo!\n\n");
system("pause");
return;
}
system("cls");
printf("\n=Digite 0 (zero) para voltar=\n Digite o codigo: ");
scanf("%d", &cod); fflush(stdin);
if (cod == 0)
return;
fread(&paciente, sizeof(usuario), 1, arq);//LÊ O ARQUIVO NO ENDEREÇO DA VARIÁVEL paciente
system("cls");
while (!feof(arq)) {//ATÉ QUE SE CHEGUE AO FIM DO ARQUIVO EXIBIRÁ OS USUARIOS ENCONTRADOS UM POR UM APÓS AS ALTERAÇÕES DO ANTERIOR
if (cod == paciente.cod) { //SE ENCONTRADO O USUARIO: EXIBE NOME, IDADE, SEXO E TELEFONE
printf("\nNome: %s\n", paciente.nome);
printf("\nIdade: %d\n", paciente.idade);
printf("\nAlergia: %c\n", paciente.alergia);
printf("\nCpf: %d\n", paciente.cpf);
printf("\nEndereco:%c\n",paciente.endereco);
printf("\nTratamento:%c\n",paciente.tratamento);
printf("\nData da alergia:%d\n",paciente.data_alergia);
do {
printf("\nDeseja alterar o nome (1-sim 2-nao): ");
scanf("%d", &op); fflush(stdin);
} while (op != 1 && op != 2);
if (op == 1) {
printf("\nDigite o nome: ");
fflush(stdin);
gets(paciente.nome); fflush(stdin);
alterou = 1;
}
do {
printf("\nDeseja alterar a idade (1-sim 2-nao): ");
scanf("%d", &op); fflush(stdin);
} while (op != 1 && op != 2);
if (op == 1) {
do{
printf("\nDigite a idade: ");
scanf("%d", &paciente.idade); fflush(stdin);
} while (paciente.idade<0 || paciente.idade>100);
alterou = 1;
}
do {
printf("\nDeseja alterar a alergia (1-sim 2-nao): ");
scanf("%d", &op); fflush(stdin);
} while (op != 1 && op != 2);
if (op == 1) {
do{
printf("\nDigite a alergia: ");
scanf("%c", &paciente.alergia); fflush(stdin);
} while (paciente.alergia != 'f' && paciente.alergia != 'm');
alterou = 1;
}
do {
printf("\nDeseja alterar o cpf (1-sim 2-nao): ");
scanf("%d", &op); fflush(stdin);
} while (op != 1 && op != 2);
if (op == 1) {
do{
printf("\nDigite o cpf: ");
fflush(stdin);
scanf("%d", &paciente.cpf); fflush(stdin);
} while (paciente.cpf >= 99999999999 || paciente.cpf<9999999999);
alterou = 1;
}
 
if (alterou) {//SE A VARIÁVEL "ALTEROU" FOR NÃO NULA
fseek(arq, sizeof(usuario)*(cod-1), SEEK_SET); //MOVE O PONTEIRO PARA UMA POSIÇÃO ANTERIOR NO ARQUIVO
if (fwrite(&paciente, sizeof(usuario), 1, arq) ==1) {
printf("\nAlteracao salva com sucesso!\n\n");
 
}
else {
printf("\nErro na gravacao do arquivo!\n\n");
}
fflush(arq);  // opcional, pois não vamos ler nada depois...
}
else {
printf("\nNenhuma alteracao realizada!\n\n");
}
break;
 
fread(&paciente, sizeof(usuario), 1, arq);
}
if (cod!= paciente.cod) {
printf("\nCodigo nao cadastrado!\n\n");
}
fclose(arq);
system("pause");
 
 
void consultarNomepaciente(char *nomeArq){//PROCEDIMENTO PARA CONSULTAR O USUARIO PELO NOME
char nome[30];
int i = 0;
usuario paciente;
FILE *arq;
system("cls");
if (!(arq = fopen(nomeArq, "a+b"))) {
printf("\nErro ao abrir o arquivo!\n\n");
system("pause");
return;
}
printf("\nDigite o Nome: ");
fflush(stdin);
gets(nome); fflush(stdin);
rewind(arq); //RETORNA O PONTEIRO PARA O INÍCIO DO ARQUIVO
fread(&paciente, sizeof(usuario), 1, arq);
 
if (strstr(paciente.nome, nome))//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO
printf("\n    Nomes ENCONTRADOS:   \n\n");
while (!feof(arq)) {
if (strstr(paciente.nome, nome)) {
printf("\nCodigo: %d\n", paciente.cod);
printf("Nome: %s\n", paciente.nome);
printf("Idade: %d\n", paciente.idade);
printf("Sexo: %c\n", paciente.alergia);
printf("Telefone: %d\n\n\n", paciente.cpf);
printf("Enderoco:%c\n",paciente.endereco);
printf("Alergia:%c",paciente.alergia);
printf("Data da alergia:%d\n",paciente.data_alergia);
printf("Tratamento:%c\n",paciente.tratamento);
}
fread(&paciente, sizeof(usuario), 1, arq);
}
 
if (!i) {
printf("\n\npaciente nao cadastrado!\n\n");
}
fclose(arq);
system("pause");
}
void excluirCodpaciente(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO CODIGO
int codigo, excluiu = 0;
int op;
    usuario paciente;
FILE *arqOrigem, *arqDestino;
 
system("cls");
do{
if (!(arqOrigem = fopen(nomeArq, "rb"))) {
printf("\nErro ao abrir o arquivo!\n\n");
system("pause");
return;
}
if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO
printf("\nErro ao abrir o arquivo temporario!\n\n");
fclose(arqOrigem);
system("pause");
return;
}
printf("\n=Digite zero para voltar=\n Digite o codigo do usuario: ");
fflush(stdin);
scanf("%d", &codigo); fflush(stdin);
if (codigo == 0)
return;
fread(&paciente, sizeof(usuario), 1, arqOrigem);
while (!feof(arqOrigem)) {
if (codigo == paciente.cod) { //TESTA SE O CODIGO INFORMADO REFERE-SE A UM USUARIO EXISTENTE
printf("\n     Usuario encontrado!\n\n");
printf("Codigo: %d\n", paciente.cod);
printf("Nome: %s\n", paciente.nome);
printf("Idade: %d\n", paciente.idade);
printf("Sexo: %c\n", paciente.alergia);
printf("Telefone: %d\n", paciente.cpf);
do{
printf("\n\nDeseja excluir o paciente(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE QUER EXCLUIR
fflush(stdin); scanf("%d", &op); fflush(stdin);
} while (op != 1 && op != 2);
if (op == 1)
excluiu = 1;
break;
}
else {
fwrite(&paciente, sizeof(usuario), 1, arqDestino);//GRAVA OS USUARIOS COM CODIGO DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO
}
fread(&paciente, sizeof(usuario), 1, arqOrigem);
}
fclose(arqOrigem);//FECHA O ARQUIVO DE ORIGEM
fclose(arqDestino);//FEHA O ARQUIVO DE DESTINO
if (excluiu) {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NÃO NULO
remove(nomeArq);//FUNÇÃO QUE DELETA UM ARQUIVO
rename("temp.bin", nomeArq);//FUNÇÃO QUE RENOMEIA UM ARQUIVO
printf("\n\nExclusao realizada com sucesso!\n\n");
 
}
else if (codigo != paciente.cod){//SE NÃO FOR ENCONTRADO UM USUARIO COM O CODIGO INFORMADO
remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino)
printf("\n\nCodigo nao cadastrado!\n\n");
system("pause");
}
else {//SE A VARIÁVEL "EXCLUIU" RETORNAR UM VALOR NULO
remove("temp.bin");//DELETA O NOVO ARQUIVO CRIADO (arqDestino)
printf("\n\nExclusao nao realizada!\n\n");
system("pause");
}
} while (codigo != paciente.cod);
}
 
void excluirNomepaciente(char *nomeArq){//PROCEDIMENTO PARA EXCLUIR O USUARIO PELO NOME OU PARTE DO NOME
char nome[50];
int excluiu = 0, op, codigoU;
     usuario paciente;
FILE *arqOrigem, *arqDestino;
 
system("cls");
if (!(arqOrigem = fopen(nomeArq, "rb"))) {
printf("\nErro ao abrir o arquivo!\n\n");
system("pause");
return;
}
if (!(arqDestino = fopen("temp.bin", "wb"))) {//CRIA UM ARQUIVO TEMPORÁRIO
printf("\nErro ao abrir o arquivo temporario!\n\n");
fclose(arqOrigem);
system("pause");
return;
}
printf("\nDigite o nome do paciente: ");
fflush(stdin);
gets(nome); fflush(stdin);
fread(&paciente, sizeof(usuario), 1, arqOrigem);
while (!feof(arqOrigem)) {
if (strstr(paciente.nome, nome)) {//TESTA SE O NOME OU PARTE DELE REFERE-SE A ALGUM USUARIO
printf("\nCodigo: %d\n", paciente.cod);
printf("Nome: %s\n", paciente.nome);
printf("Idade: %d\n", paciente.idade);
printf("Sexo: %c\n", paciente.alergia);
printf("Telefone: %d\n\n\n", paciente.cpf);
printf("Enderoco:%c\n",paciente.endereco);
printf("Alergia:%c",paciente.alergia);
printf("Data da alergia:%d\n",paciente.data_alergia);
printf("Tratamento:%c\n",paciente.tratamento);
do{
printf("\n\nDeseja excluir o usuario(1 - Sim ou 2 - Nao): ");//CONFIRMA SE REALMENTE DESEJA EXCLUIR
fflush(stdin); scanf("%d", &op); fflush(stdin);
} while (op != 1 && op != 2);
if (op == 1){
 
excluiu = 1;
codigoU = paciente.cod;
}
}
else {
fwrite(&paciente, sizeof(usuario), 1, arqDestino);//GRAVA OS USUARIOS COM NOME DIFERENTE DO INFORMADO EM UM NOVO ARQUIVO
}
fread(&paciente, sizeof(usuario), 1, arqOrigem);
}
fclose(arqOrigem);
fclose(arqDestino);
if (excluiu) {//SE A VARIÁVEL "EXCLUIU" FOR NÃO NULA
remove(nomeArq);//REMOVE ARQUIVO DE ORIGEM
rename("temp.bin", nomeArq);//RENOMEIA ARQUIVO TEMPORARIO
printf("\n\nExclusao realizada com sucesso!\n\n");
excluirAvalUsuCod(codigoU);//EXCLUI AVALIAÇÕES FEITAS PELO(S) USUARIO(S) EXCLUÍDOS
}
else if (op == 2){//SE NÃO EXCLUIR USUARIO
remove("temp.bin");//DELETA ARQUIVO TEMPORARIO
printf("\n\nExclusao nao realizada!\n\n");
system("pause");
}
else {//SE NÃO FOR ENCONTRADO USUARIO CORRESPONDENTE
remove("temp.bin");//DELETA ARQUIVO TEMPORÁRIO
printf("\n\nUsuario nao cadastrado!\n\n");
system("pause");
}
}
void listarpaciente(char *nomeArq) {//PROCEDIMENTO PARA LISTAR TODOS OS pacientes CADASTRADOS
usuario paciente;
FILE *arq;
if (!(arq = fopen(nomeArq, "rb"))) {
printf("\nErro ao abrir o arquivo!\n\n");
system("pause");
return;
}
 
system("cls");
printf("\n\nL I S T A G E M\n\n");
fread(&paciente, sizeof(usuario), 1, arq);
while (!feof(arq)) {
printf("\nCodigo: %d\n", paciente.cod);
printf("Nome: %s\n", paciente.nome);
printf("Idade: %d\n", paciente.idade);
printf("Sexo: %c\n", paciente.alergia);
printf("Telefone: %d\n\n\n", paciente.cpf);
printf("Enderoco:%c\n",paciente.endereco);
printf("Alergia:%c",paciente.alergia);
printf("Data da alergia:%d\n",paciente.data_alergia);
printf("Tratamento:%c\n",paciente.tratamento);
 
fread(&paciente, sizeof(usuario), 1, arq);
}
 
fclose(arq);
system("pause");
}
 
 
 
 
 
int main(){
printf("hello world");
return 0;
}
 
obs: ignorarem  o main , ainda estou desenvolvendo .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×