Leudassdf Posted March 3, 2014 at 10:02 PM Report #547445 Posted March 3, 2014 at 10:02 PM Boas pessoal, Eu nem sei bem como explicar mas eu gostava que o meu programa fizesse o seguinte. O utilizador escrevia um nome que queria alterar. Depois numa linha abaixo aparecia uma linha a dizer p.ex Novo nome:"Inicialmente aparecia o nome actual e o utilizador deveria alterar esse mesmo nome. Do genero: char Nome[50]; printf("Introduza o Nome que deseja alterar:"); scanf(" %s",Nome); printf("Novo nome:%s",Nome); //aqui ele deveria conseguir alterar o Nome que foi colocado pelo printf anterior. scanf(" %s",Nome); Deu para perceber? Cumprimentos Leandro Rodrigues
Guest Posted March 3, 2014 at 10:09 PM Report #547448 Posted March 3, 2014 at 10:09 PM Deu, mas no teu exemplo tu declaras um unico array, quantos nomes esperas que esteja lá dentro, a não ser que seja só o primeiro? Podes fazer um exemplo usando um ficheiro. Onde vais linha a linha procurando o nome, se o encontrares muito bem, se não error.
Leudassdf Posted March 3, 2014 at 10:12 PM Author Report #547449 Posted March 3, 2014 at 10:12 PM Deu, mas no teu exemplo tu declaras um unico array, quantos nomes esperas que esteja lá dentro, a não ser que seja só o primeiro? Podes fazer um exemplo usando um ficheiro. Onde vais linha a linha procurando o nome, se o encontrares muito bem, se não error. O objetivo e mesmo esse. Usar ficheiros. No entanto eu guardo os nomes numa estrutura. Eu fiz aquele pequeno codigo so para exemplificar o que queria. Se soubesse fazer assim tambem iria saber aplicar...
HappyHippyHippo Posted March 4, 2014 at 04:48 AM Report #547462 Posted March 4, 2014 at 04:48 AM se estas a usar estruturas: #define NAME_MAX_SIZE 256 #define LISTA_MAX_SIZE 256 struct Pessoa { char nome[NAME_MAX_SIZE]; // ... }; // ... struct Pessoa lista_de_pessoas[listA_MAX_SIZE]; // ... char buffer[NAME_MAX_SIZE]; size_t len = 0; printf("Insira o nome da pessoa a alterar : "); fflush(stdout); if (fgets(buffer, NAME_MAX_SIZE, stdin)) { len = strlen(buffer); if (buffer[len - 1] == '\n') buffer[len - 1] = 0; for (len = 0; len < LISTA_MAX_SIZE; ++len) { if (strcmp(lista_de_pessoas[nome], buffer] == 0) { // fazer alterações break; } } if (len == LISTA_MAX_SIZE) { printf("Nao existe nenhuma pessoa registada com esse nome"); } } else // erro a ler do teclado IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Leudassdf Posted March 4, 2014 at 10:22 AM Author Report #547479 Posted March 4, 2014 at 10:22 AM se estas a usar estruturas: Boas HapyHipyHippo, Aquilo que me estas a fazer é pedir ao utilizador o nome que ele quer alterar e depois comparas com a lista de nomes que tens... O meu problema nao é esse. Vou tentar explicar melhor. Imagina o seguinte: char Nome[50]; printf("Introduza o nome a alterar:"); scanf(" %50s",Nome); printf("Novo nome para %s:",Nome); //Aqui eu devo ler o novo nome, mas eu queria colocar no scanf o nome atual de forma a que o utilizador o consegui-se alterar. //EX:Utilizador escreve NomeTeste. //Novo nome para NomeTeste:NomeTeste(Este NomeTeste depois dos : deveria dar para alterar. Porque se o utilizador quiser alterar o nome para NomeTeste1 tem que escrever tudo e se fosse assim so adicionava o 1.
HappyHippyHippo Posted March 4, 2014 at 11:09 AM Report #547481 Posted March 4, 2014 at 11:09 AM o que pretendes depende das capacidades da consola, o que requer ter código específico para o sistema operativo que estas a usar. exemplo : no linux sem ncurses > http://man7.org/linux/man-pages/man4/console_codes.4.html IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
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