1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Duvida em programa em C

Discussão em 'Programação' iniciada por Pedui, 7 de Dezembro de 2012. (Respostas: 1; Visualizações: 548)

  1. Estava a fazer um trabalho de programação em c e surgiu-me uma dúvida.
    Eu quero que o utilisador insira dois valores, através de um scanf.
    Neste scanf eu quero que os valores sejam guardados de uma forma formatada, deste género:
    Código:
     y$u
    
    Eu sei que o scanf tem de ser algo deste género:
    Código:
     scanf(" %c$%c", ...);
    A minha questao é que eu quero que se por exemplo não for introduzido isso, eu quero que ele não faça as instruções abaixo.
    Por exemplo, caso seja introduzido isto:
    Código:
    fdsd$$$asdasdybu
    
    Eu quero que não seja feita nenhuma instrução abaixo.
    Eu sei que tenho de usar if e else. A minha questão é mesmo só na parte da escrita do utilizador, eu gostaria de "limitá-la".
    Se alguém pudesse ajudar agradecia. :)
     
  2. Darien

    Darien Power Member

    Podes repetir o scanf enquanto o input não tiver o formato que queres. Algo como:

    Código:
     char str[3];
    
     do {
      scanf(%c%c%c ....);
     } while(!verificastring(str))
    Onde verificastring é uma função feita por ti onde fazes o conjunto de testes para validar a string. Se a única necessidade fosse ter (char)$(char), a função podia ser:

    Código:
    int verificastring(char* str) {
    
    if(str[1]=='$')
     return 1;
    else return 0;
    
    }
    Já agora, podias condensar a função anterior para: return str[1]=='$'; -> e neste caso nem fazia sentido ser uma função auxiliar, podias meter a comparação diretamente na verificação do while, isto só se usa se o conjunto de testes for algo mais elaborado.
    Espero ter ajudado.
     

Partilhar esta Página