Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Dúvida em C - Função scanf()

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Dúvida em C - Função scanf()

    Olá, sou novo aqui no fórum. Eu gostaria de saber o porquê de quando você usa o scanf pra receber um valor e aperta enter ele continua o fluxo do código, mas quando você aperta barra ou tab não. Fiz um código simples pra exemplificar:

    #include <stdio.h>

    int main() {

    int x, z;

    /* Reparem que aqui se você digitar por exemplo "2" pro x, apertar barra, enter ou tab ele "pula" pro outro scanf e se você digitar "3", por exemplo, ele armazena o 3 pro x. Entretanto, se você apertar barra ou tab para prosseguir, ele não prossegue, só prossegue se você digitar enter */
    printf("Digite 2 números: ");
    scanf("%d", &x);
    scanf("%d", &z);

    printf("%d e %d", x, z);
    }


    Então, eu gostaria de saber o que há de tão especial no enter?
    Similar Threads

  • Font Size
    #2
    Nao sei se eh isso, mas pelo que eu entendi vc quer ler dois numeros na mesma linha?
    Se for isso, vc tem que colocar pra ler os dois numeros no mesmo scanf,
    assim:

    scanf("%d %d", &x, &z);

    Para ler os numeros, separados por uma barra ou qualquer outro caracter:
    scanf("%d\%d", &x, &z);

    Comment


    • Font Size
      #3
      Postado Originalmente por fr0st Ver Post
      Nao sei se eh isso, mas pelo que eu entendi vc quer ler dois numeros na mesma linha?
      Se for isso, vc tem que colocar pra ler os dois numeros no mesmo scanf,
      assim:

      scanf("%d %d", &x, &z);

      Para ler os numeros, separados por uma barra ou qualquer outro caracter:
      scanf("%d\%d", &x, &z);
      E aí. Então, na verdade não era isso não. Eu queria saber por que que depois de receber os valores, o código só segue o fluxo se você dar Enter e não segue se você apertar espaço ou tab, já que espaço ou tab também serviria pra você digitar um valor, depois digitar outro valor (caso quisesse atribuir valores para duas variáveis ou mais). Mas o Abbadon já respondeu, deve ser o que ele disse mesmo, de que na biblioteca estar programado para só seguir quando der Enter. Quem quiser complementar ou até mesmo corrigir, eu agradeço;

      Comment


      • Font Size
        #4
        Sim de fato está programado para receber apenas ENTER, pois caso espaço também servisse, iria dar problema com variáveis do tipo Sting.

        Se eu quisesse digitar o texto "eu gosto de maçã" não ia dar porque o espaço ia finalizar a entrada da variável.

        Comment

        X
        Working...
        X