-
Posts
8 -
Cadastrado em
-
Última visita
Reputação
3-
@arfneto obrigado pela ajuda eu consegui progredir com o código agora de noite!!! eu só to tendo problemas com o fgets, toda vez que eu coloco ele o programa para de funcionar, então eu deixei no gets por hora, depois eu procuro uma solução, quanto aos espaços por algum motivo quando eu olhei agora eles tão dobrados e triplicados e um deles até estava quadriplicado, não sei o que aconteceu, mas obrigado mesmo assim eu tirei os espaços do meu texto, eu não pretendo fazer esse role que você falou na engine() porque ela vai tratar de erros e outras coisas também, não só os menus, eu só não tive tempo de fazer ainda. eu pretendo colocar as limitações de inputs e alguns erros que eu consigo pensar pra fazer esse programa, quanto ao int main() que você sugeriu ele não funciona no meu programa, talvez pela forma esquisita que eu escrevo. o programa tá assim agora se você quiser saber: #include "stdio.h" #include "stdlib.h" #include "locale.h" #include "string.h" #include "dirent.h" //para poder pesquisar em apastas. int interface_menu(); int menu_1(); int engine(); int menu_2(); FILE *z; int main() { int opt; do { opt=interface_menu(); engine(opt); } while(opt!=4); return 0; } int interface_menu() { int N_menu; printf("informe para onde você que ir \n"); printf(" 1- cadastrar \n 2- alterar as suas informacoces \n 3- verificar a lista de cadastrados \n 4- para finalizar\n"); scanf("%d", &N_menu); return N_menu; } int menu_1() { char login[101]; char nome[101]; char matricula[13]; char DDD[3]; char telefone[10]; char cpf[13]; char idade[3]; printf("agora vamos pegar algumas de suas informações\ndigite o seu login: \n"); gets(login); gets(login); //por que tem 2 fgets ??? https://www.clubedohardware.com.br/forums/topic/634801-resolvido-porque-o-dev-esta-pulando-o-comando-gets/ char local_inicial[100] ="C:\\Users\\davic\\Desktop\\Lista de livros da ufpb\\P5\\prova 3 C\\"; char local_final[100] = "C:\\Users\\davic\\Desktop\\Lista de livros da ufpb\\P5\\prova 3 C\\alunos\\"; strcat(local_inicial, login); strcat(local_final, login); strcat(local_final,".txt"); z=fopen(login, "w"); //obtendo os dados printf("digite o seu nome\n"); gets(nome); printf("digite a sua matricula\n"); gets(matricula); printf("digite o DDD\n"); gets(DDD); printf("agora digite o seu numero de telefone\n"); gets(telefone); printf("digite o seu cpf\n"); gets(cpf); printf("digite a sua idade\n"); gets(idade); // Colocando no arquivo as informações fprintf(z,"Nome:%s\n\nMatricula:%s\nDDD:%s\nTelefone:%s\ncpf:%s\nidade:%s\n",nome,matricula,DDD,telefone,cpf,idade); fclose(z); rename(local_inicial, local_final); return 0; } int menu_2() { char login; printf("por favor digite o seu login\n"); scanf("%c", &login); scanf("%c", &login); DIR *dir; struct dirent *ent; if ((dir = opendir ("C:\\Users\\davic\\Desktop\\Lista de livros da ufpb\\P5\\prova 3 C\\alunos"))!= NULL) { /* print all the files and directories within directory */ while ((ent = readdir (dir)) != NULL) { printf ("%s\n", ent->d_name); } closedir (dir); } else { /* could not open directory */ perror (""); return; } if((z=fopen(login, "r+"))==-1) { printf("esse login não existe"); } } int engine(int N_menu) { if(N_menu==1) { menu_1(); } else if(N_menu==2) { menu_2(); } return 0; } no menu dois eu vou fazer a listagem dos arquivos .txt e comparação do login com digitado para ai então abrir a pasta de substituir as informações. ainda tem um menu 3 que eu tenho que listar todos os dados num printf ou em outro arquivo pra ficar organizadinho, pensei até em usar o execel, mas acho que eu só vou estar colocando trabalho de mais pra ser feito, e deoius eu vou para lidar com os erros e imposição dos limites dos inputs. minha duvida toda com isso era só o comando strcat que eu não conhecia e eu acabei resolvendo por rename pra não ficar fugindo tanto das bibliotecas padrão.
-
@devair1010 valeu ai por ter deixado mais clean o código e ter alertado sobre o fclose(z), tipo o que tá acontecendo é que esse arquivos estão sendo criados dentro da pasta de origem do programa com arquivos sem um .algumacoisa depois dele(no caso era pra ser .txt) mas se você abrir com o bloco de notas ele abre normalmente com as informações todas, eu to com uma pasta dentre da pasta que ta rodando o programa chamada alunos onde eu vou guardar as informações de cada pessoa que estiver lá e eu planejo fazer um sistema pra não sobre escrever nada e não permitir a entrada de dois arquivos com o mesmo nome resultando em um ser deletado ou ficar com o numero 2 depois dele, to usando a biblioteca "dirent.h" pra isso. eu só to um pouco confuso ainda em como eu vou mover esses arquivos de uma pasta para a outra e também como cria-los já sendo um .txt ou mudar para isso, mas eu ainda to testando pra ver se da pra ler eles sem a necessidade disso.
-
opa, eu to tentando fazer um codigo que pelo que eu vi é bem comum de se achar pela interne para uma cadeira de Iniciação a computação, eu ainda to no começo dele, não fiz erros nem verificação de login nem nada de mais ainda, eu to com um problema que é eu crio um arquivo com o fopen que vai ser nomeado pelo usuário, sendo que ele não cai na pasta certa, eu tentei fazer um caminho para ele no próprio fopen e não consegui e tentei mover ele, sendo que todas as opções que eu achei tinha que saber o nome do arquivo previamente para poder mover ele, e eu não consegui fazer isso com a variável que armazena o dado do login. eu uso o vscode. #include <stdio.h> #include <stdlib.h> #include <locale.h> int interface_menu(); void menu_1(); void engine(); void menu_2(); FILE *z; int main() { int menu0; do { menu0=interface_menu(); engine(menu0); } while(menu0!=4); return 0; } int interface_menu() { int N_menu; printf("informe para onde você que ir \n"); printf(" 1- cadastrar \n 2- alterar as suas informacoces \n 3- verificar a lista de cadastrados \n 4- para finalizar\n"); scanf("%d", &N_menu); return N_menu; } void menu_1() { char login[101]; char nome[101]; char nomeData; char matricula[13]; char DDD[3]; char telefone[10]; char cpf[13]; char idade[3]; printf("agora vamos pegar algumas de suas informações\ndigite o seu login: \n"); gets(login); gets(login); //por que tem 2 gets ??? https://www.clubedohardware.com.br/forums/topic/634801-resolvido-porque-o-dev-esta-pulando-o-comando-gets/ z=fopen(login, "w"); printf("digite o seu nome\n"); gets(nome); printf("digite a sua matricula\n"); gets(matricula); printf("digite o DDD\n"); gets(DDD); printf("agora digite o seu numero de telefone\n"); gets(telefone); printf("digite o seu cpf\n"); gets(cpf); printf("digite a sua idade\n"); gets(idade); // Colocando no arquivo as informações fprintf(z,"Nome:%s\n",nome); putc('\n', z); fprintf(z,"Matricula:%s",matricula); putc('\n', z); fprintf(z,"DDD:%s",DDD); putc('\n', z); fprintf(z,"Telefone:%s",telefone); putc('\n', z); fprintf(z,"cpf:%s",cpf); putc('\n', z); fprintf(z,"idade:%s",idade); putc('\n', z); fclose; return; } void menu_2() { } void engine(int N_menu) { //int erro1; if(N_menu==1) { menu_1(); } else if(N_menu==2) { menu_2(); } }
-
quanto vcs acham que vale esse computador ?
yooe postou um tópico em Quanto vale meu equipamento usado?
-
@.if eu já esperava por isso, mas será que rola de eu colocar de volta com uma fita
-
Eu acabei acidentalmente descolando essa parte da minha tv, quero saber se tem como colar novamente e como ?
-
a tela(LTM190M2-L31) do meu monitor samsung(monitor 19 polegadas 931bw) quebrou e eu to tentando comprar uma nova, eu encontrei dois outros modelos compatíveis o: LTM190E1-L01 e o LTM190EX-L31 e seus outros modelos alguém sabe de algum site barato para comprar essas peças ? peças usadas que seja, eu to procurando os sites que as oficinas de pc usam para comprar as suas peças.
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