Új hozzászólás Aktív témák

  • bucsupeti
    senior tag

    #include <stdio.h>
    void main()
    {
    char c;
    int a, b, d;
    printf("kerek ket egesz szamot es a vegezni kivant muvelet szimbolumat\n");
    scanf_s("%d%d%c", &a,&b,&c, 1);
    if (c == '+')
    {
    d = a + b;
    printf("%d %c %d = %d", a, c, b, d);
    }
    }

    Miutan beolvas ket egesz szamot, miert ugrik tul? Nem keri be a karaktert, nem ertem miert... Ha kulon scanf_s irok akkor sem... Valaki tudja mi a problema?

    A billentyűzet pufferbe bennmarad egy enter és azt olvassa ki a scanf a %c-re
    Ezt úgy lehet kezelni, hogy a scanf-nek megadod az elválasztó karakter, amit a beolvasáskor elnyel.
    Az elválasztó karakter ez esetben a \r.

    Érdemes kiíratni hoyg mit is olvasott be, így hamar kiderülnek a hasonló hibák.

    Javítsd ki így a scanf-es sort:

    scanf("%d\r%d\r%c",&a,&b,&c);

    így nekem működött linux alatt. a scanf_s nem ansi C szabvány, hanem a microsoftnak a találmánya, azzal nem tudom kipróbálni.

Új hozzászólás Aktív témák