Почему моя программа C выдает неправильный результат, но код правильный? - PullRequest
0 голосов
/ 17 июня 2020

Я написал тестовый код на CLion. Код следующий:

#include <stdio.h>

int main() {
    int a, b, sum;
    printf("Enter an integer: ");
    scanf("%d", &a);
    printf("Enter another integer: ");
    scanf("%d", &b);
    sum = a + b;
    printf("Sum: %d\n", sum);
    return 0;
}

Вывод кода не такой, как был бы. Вывод кода:

Enter an integer:23
 Enter another integer:12
 Sum: 35

Проблемы с выводом: 1. В первой строке будет пробел после (:) 2. Int во второй строке, она начинается после пробела, а также там нет пробела после (:) 3. Третья строка также начинается после пробела.

Есть еще одна проблема. Отображается предупреждение для scanf. Изображение предупреждающего сообщения приведено здесь: warning message

Мне предлагается использовать strtol вместо scanf. Но когда я использую strtol, он показывает ошибку. Я использую mingw . Какое решение для этого? Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 18 июня 2020

Пожалуйста, грипп sh stdout!

#include <stdio.h>
int main() {
    int a, b, sum;
    printf("Enter an integer: ");
    fflush(stdout); // here
    scanf("%d", &a);
    printf("Enter another integer: ");
    fflush(stdout); // and here
    scanf("%d", &b);
    sum = a + b;
    printf("Sum: %d\n", sum);
    return 0;
}
...