Ir ao conteúdo
  • Cadastre-se

Arquivos


Posts recomendados

Galera, não to conseguindo alterar nada, não to conseguindo achar o erro também, postei a parte aonde acho q o erro esta.

void alterarUsers(char *nomeArq){
	struct Usuario u;
	int opcao, code, log, nome, opcaoAlterarAux;
	char opcaoAlterar;
	FILE *arq;
	if(!(arq = fopen(nomeArq, "rb+"))){
		printf("\nErro ao tentar abrir o arquivo!\n");
		return;
	}
	do{
		//system("cls");
		system("clear");
		printf("\nALTERAR USUARIO\n\n");
		printf("Procurar por:\n");
		printf("1 - codigo\n");
		printf("2 - login\n");
		printf("3 - nome\n");
		printf("Digite sua opcao (0 p/ sair): ");
		scanf("%d", &opcao);
		fread(&u, sizeof(struct Usuario), 1, arq);
		switch(opcao){
			case 1:
					printf("Digite o codigo: ");
					scanf("%d", &code);
					if(code == u.codigo){
						do{
							system("cls");
							//system("clear");
							printf("O que voce deseja alterar:\n");
							printf("1 - codigo\n");
							printf("2 - nome\n");
							printf("3 - login\n");
							printf("4 - senha\n");
							printf("5 - idade\n");
							printf("6 - sexo\n");
							printf("7 - telefone\n");
							printf("Digite sua opcao (0 p/ sair): ");
							scanf("%d", &opcaoAlterarAux);
							switch(opcaoAlterarAux){
								case 1:
										printf("voce tem certeza que deseja alterar esse codigo(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo codigo: ");
											scanf("%d", &u.codigo);
										}
										if(fwrite(&u, sizeof(struct Usuario), 1, arq) != 1){
											printf("\nErro ao tentar alterar o usuario no arquivo!\n");
											getchar();
										}else{
											printf("\nUsuario alterado com sucesso!\n");
											getchar();
										}
										break;
								case 2:
										printf("voce tem certeza que deseja alterar esse nome(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo nome: ");
											//fflush(stdin);
											getchar();
											gets(u.nome);
										}
										break;
								case 3:
										printf("voce tem certeza que deseja alterar esse login(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo login: ");
											//fflush(stdin);
											getchar();
											gets(u.login);
										}
										break;
								case 4:
										printf("voce tem certeza que deseja alterar essa senha(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite a nova senha: ");
											//fflush(stdin);
											getchar();
											gets(u.senha);
										}
										break;
								case 5:
										printf("voce tem certeza que deseja alterar essa idade(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite a nova idade: ");
											scanf("%d", &u.idade);
										}
										break;
								case 6:
										printf("voce tem certeza que deseja alterar esse sexo(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo sexo(m/f): ");
											scanf("%c", &u.sexo);
										}
										break;
								case 7:
										printf("voce tem certeza que deseja alterar esse telefone(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo telefone: ");
											//fflush(stdin);
											getchar();
											gets(u.telefone);
										}
										break;
								default:
										if(opcaoAlterarAux != 0){
											printf("Opcao invalida!\n");
										}
							}
						}while(opcaoAlterarAux != 0);
					}
					else{
						printf("codigo nao encontrado!\n");
					}
					break;
			case 2:
					printf("Digite o login: ");
					//fflush(stdin);
					getchar();
					gets(log);
					if(strcmp(log, u.login) == 0){
						do{
							//system("cls");
							system("clear");
							printf("O que voce deseja alterar:\n");
							printf("1 - codigo\n");
							printf("2 - nome\n");
							printf("3 - login\n");
							printf("4 - senha\n");
							printf("5 - idade\n");
							printf("6 - sexo\n");
							printf("7 - telefone\n");
							printf("Digite sua opcao (0 p/ sair): ");
							scanf("%d", &opcaoAlterarAux);
							switch(opcaoAlterarAux){
								case 1:
										printf("voce tem certeza que deseja alterar esse codigo(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo codigo: ");
											scanf("%d", &u.codigo);
										}
										break;
								case 2:
										printf("voce tem certeza que deseja alterar esse nome(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo nome: ");
											//fflush(stdin);
											getchar();
											gets(u.nome);
										}
										break;
								case 3:
										printf("voce tem certeza que deseja alterar esse login(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo login: ");
											//fflush(stdin);
											getchar();
											gets(u.login);
										}
										break;
								case 4:
										printf("voce tem certeza que deseja alterar essa senha(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite a nova senha: ");
											//fflush(stdin);
											getchar();
											gets(u.senha);
										}
										break;
								case 5:
										printf("voce tem certeza que deseja alterar essa idade(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite a nova idade: ");
											scanf("%d", &u.idade);
										}
										break;
								case 6:
										printf("voce tem certeza que deseja alterar esse codigo(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo sexo(m/f): ");
											scanf("%c", &u.sexo);
										}
										break;
								case 7:
										printf("voce tem certeza que deseja alterar esse telefone(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo telefone: ");
											//fflush(stdin);
											getchar();
											gets(u.telefone);
										}
										break;
								default:
										if(opcaoAlterarAux != 0){
											printf("Opcao invalida!\n");
										}
							}
						}while(opcaoAlterarAux != 0);
					}
					else{
						printf("login nao encontrado!\n");
					}
					break;
			case 3:
					printf("Digite o nome(ou parte dele): ");
					//fflush(stdin);
					getchar();
					gets(nome);
					if(strcmp(nome, u.nome) == 0){
						do{
							system("cls");
							//system("clear");
							printf("O que voce deseja alterar:\n");
							printf("1 - codigo\n");
							printf("2 - nome\n");
							printf("3 - login\n");
							printf("4 - senha\n");
							printf("5 - idade\n");
							printf("6 - sexo\n");
							printf("7 - telefone\n");
							printf("Digite sua opcao (0 p/ sair): ");
							scanf("%d", &opcaoAlterarAux);
							switch(opcaoAlterarAux){
								case 1:
										printf("voce tem certeza que deseja alterar esse codigo(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo codigo: ");
											scanf("%d", &u.codigo);
										}
										break;
								case 2:
										printf("voce tem certeza que deseja alterar esse nome(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo nome: ");
											//fflush(stdin);
											getchar();
											gets(u.nome);
										}
										break;
								case 3:
										printf("voce tem certeza que deseja alterar esse login(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo login: ");
											//fflush(stdin);
											getchar();
											gets(u.login);
										}
										break;
								case 4:
										printf("voce tem certeza que deseja alterar essa senha(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite a nova senha: ");
											//fflush(stdin);
											getchar();
											gets(u.senha);
										}
										break;
								case 5:
										printf("voce tem certeza que deseja alterar essa idade(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite a nova idade: ");
											scanf("%d", &u.idade);
										}
										break;
								case 6:
										printf("voce tem certeza que deseja alterar esse sexo(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo sexo: ");
											scanf("%c", &u.sexo);
										}
										break;
								case 7:
										printf("voce tem certeza que deseja alterar esse telefone(s/n): ");
										//fflush(stdin);
										getchar();
										scanf("%c", &opcaoAlterar);
										if(opcaoAlterar == 's' || opcaoAlterar == 'S'){
											printf("Digite o novo telefone: ");
											//fflush(stdin);
											getchar();
											gets(u.telefone);
										}
										break;
								default:
										if(opcaoAlterarAux != 0){
											printf("Opcao invalida!\n");
										}
							}
						}while(opcaoAlterarAux != 0);
					}
					else{
						printf("nome nao encontrado!\n");
					}
					break;
			default:
					if(opcao != 0){
						printf("Opcao invalida!\n");
					}
		}
		printf("\n");
		system("pause");
	}while(opcao != 0);
	if(fwrite(&u, sizeof(struct Usuario), 1, arq) != 1){
		printf("\nErro ao tentar alterar o usuario no arquivo!\n");
	}else{
		printf("\nUsuario alterado com sucesso!\n");
	}
	if(fclose(arq)){
		printf("\nErro ao tentar fechar o arquivo!\n");
	}
}

 

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...