Jak ustalić dane wyjściowe dla tego typu programy w języku c?

0

Pytanie

#include <stdio.h>

int main()
{
    int var, rar;

    scanf("%d %d", &var, &rar);
    printf("%d %d", var, rar);
}

Jeśli dam enter w postaci bn nbwyjście będzie -81319504 32767. Dlaczego?

c output
2021-11-24 04:26:51
1

Najlepsza odpowiedź

1

Uruchom ten самоописывающийся kod z różnych danych wejściowych.

#include<stdio.h>
int main(void)
{ 
    int var=42,rar=43;
    printf("Scanf return value, should be 2 in case of success: %d\n", scanf("%d %d",&var,&rar));
    printf("Values, 42 and 43 are inits of not successfully scanned ones: %d %d",var,rar);
}

Aby wprowadzić "3 nb" dostajesz, na przykład:

Wartość zwracana Scanf musi być równa 2 w przypadku sukcesu: 1
Wartości 42 i 43 podane są w nie pomyślnie skanowane wartościach: 3 43

Aby wprowadzić "bn 3" otrzymasz:

Wartość zwracana Scanf musi być równa 2 w przypadku sukcesu: 0
Wartości 42 i 43 podane są w nie pomyślnie skanowane wartościach: 42 43

Szczegółowe informacje można znaleźć w dokumentacji:

https://en.cppreference.com/w/c/io/fscanf

2021-11-24 07:41:45

Robię tę odpowiedź, aby mieć duplikat dla "ignoruję scanf. Jak mogę zrozumieć, co się dzieje?". Wszystkie, nie wahaj się dodać najlepsze odpowiedzi lub krytykować moje.
Yunnosch

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................