Hirdetés

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

  • Jester01
    veterán

    Nem elírás a százalék jel. Próbáld ki! Mindkettő ugyanazt csinálja. Beolvas a bemenetről két int váltózóba(a, b). Legalábbis úgy tűnik. Biztos valami máshogy zajlik a fordítás közben. (Ubuntu alól terminálban gcc fordítóról van szó.)

    Nem ugyanazt csinálják, ha a sorban a két számon kívül még van valami és később azt is be akarod olvasni.

    scanf("%d%d%*[^\n]", &a, &b);
    getchar();
    scanf("%d", &c);
    printf("%d %d %d\n", a, b, c);

    Be:
    1 2 3
    4

    Ki: 1 2 4

    Az első sorban a szám után bármi lehet, azt figyelmen kívül hagyja.

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

    Be: 1 2 3
    Ki: 1 2 3

    Itt a két szám után ami még a sorban volt az megmarad és a további beolvasások felhasználják. A formátumstringben az utolsó % jel pedig igenis elírás mivel annak ott semmi értelme nincs. Ugyanígy működik anélkül is, csak akkor még helyes is.

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