Как определить выходные данные для этого типа программы на языке си?

0

Вопрос

#include <stdio.h>

int main()
{
    int var, rar;

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

Если я дам ввод в виде bn nb, выход будет -81319504 32767. Почему?

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

Лучший ответ

1

Запустите этот самоописывающийся код с различными входными данными.

#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);
}

Для ввода "3 nb" вы получаете, например:

Возвращаемое значение Scanf должно быть равно 2 в случае успеха: 1
Значения 42 и 43 указаны в не успешно отсканированных значениях: 3 43

Для ввода "bn 3" вы получаете:

Возвращаемое значение Scanf должно быть равно 2 в случае успеха: 0
Значения 42 и 43 указаны в не успешно отсканированных значениях: 42 43

Подробную информацию вы найдете в документации:

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

2021-11-24 07:41:45

Я делаю этот ответ, чтобы иметь дубликат для "Я игнорирую scanf. Как я могу понять, что происходит?". Все, не стесняйтесь добавлять лучшие ответы или критиковать мои.
Yunnosch

На других языках

Эта страница на других языках

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