gotak Posted November 4, 2009 at 07:37 PM Report Share #294738 Posted November 4, 2009 at 07:37 PM boas, estou a fazer um programa em c, mas estou com uma dúvida se alguem me pudesse esclarecer, agradecia #include <string.h> #include <stdio.h> #include <stdlib.h> #define MAX_MENSAGEM 500 #define MAX_USER 50 struct tagUser{ char idUser[20]; char password[10]; char nome[20]; }; struct tagNew{ char newUser[10]; char newPassword[10]; }; struct tagMensag{ int user_orig; int user_dest; int data; int hora; int assunto; int corpo_mensag; }; void menu_principal(); void menu_admin(); void menu_geral(); int main () { int result; int opcao2; int opcao; struct tagUser username; struct tagNew newacc; struct tagMensag mensagem; do{ menu_principal(); scanf("%i", &opcao); if(opcao==1) switch (opcao) { case 1: printf("\nUsername: \n"); fflush(stdin); gets(username.idUser); printf("\nPassword: \n"); gets(username.password); result = strcmp(username.idUser, "sa"); result = strcmp(username.password, "sa"); if(result==0){ menu_admin(); scanf("%i", &opcao2); switch (opcao2) { case 1: if(opcao==1) printf("ID do User: \n"); fflush(stdin); gets(newacc.newUser); printf("Password do User: \n"); gets(newacc.newPassword); break; } } else { printf("Erro\n"); } break; } }while(opcao != 2); return 0; } void menu_principal() { printf("\n******** Menu ********\n"); printf("* 1 - Log On: *\n"); printf("* 2 - Terminar *\n"); printf("**********************\n"); printf("Indique a opcao pretendida:"); } void menu_admin() { printf("\n********* System Menu *********\n"); printf("* 1 - Criar Utilizadores *\n"); printf("* 2 - Apagar Utilizadores *\n"); printf("* 3 - Ler Mensagens *\n"); printf("* 4 - Enviar Mensagens *\n"); printf("* 5 - Apagar Mensagens *\n"); printf("* *\n"); printf("* 0 - Sair *\n"); printf("*********************************\n"); printf("Indique a opcao pretendida:"); } só que quero guardar os utilizadores criados, mas não sei como guardar, penso q seja com o array mas nao tenho a certeza se puderem ajudar. cumps, gotak Link to comment Share on other sites More sharing options...
Tomás Mendes Posted November 4, 2009 at 11:03 PM Report Share #294794 Posted November 4, 2009 at 11:03 PM Boa noite, Basicamente, a tua pergunta é "Como armazenar dados?" . Como deves calcular, essa pergunta tem uma resposta bastante complexa. Porém, no âmbito do que pretendes fazer, a resposta é simples: ou usas um array, ou uma lista, ou uma Hash table, ou uma árvore, ou qualquer outra estrutura de dados simples. Parece-me que o que pretendes é somente algo que funcione e seja o mais simples possível, pelo que eu diria que o pretendes é realmente um array, como dizes. Escreves no teu código "#define MAX_USER 50", pelo que depreendo que não vai ser possível criar mais que 50 utilizadores. Sendo assim, crias um vector de 50 utilizadores: struct tagUser utilizadores[50]; Agora, precisas de um índice que te indique a última posição do vector que contém um utilizador. int i = -1; Sempre que i < 0, não existem utilizadores criados. Agora, cada vez que pretendes criar um utilizador: struct tagUser novo_utilizador; /*inicialização do novo_utilizador*/ utilizadores[++i] = novo_utilizador; Nota que: ++i é diferente de i++. Espero ter ajudado, Tomás Link to comment Share on other sites More sharing options...
Localhost Posted November 5, 2009 at 10:59 AM Report Share #294822 Posted November 5, 2009 at 10:59 AM Não sei se percebi bem mas acho que queres criar vários perfis para vários utilizadores, ora bem para isso fazer um array de structs... Depois guardas num ficheiro com as função fwrite e lês com a função fread... Acho que é isso que queres 🙂 here since 2009 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now