Ir ao conteúdo
  • Cadastre-se

programação


Victor Cesar

Posts recomendados

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 .
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...