Что-то странное происходит во время отладки в clion, пока все работает нормально

Я студент колледжа, изучаю C. Я использую CLion 2018.2.5 в macOS 10.14 mojave.

Это простая задача «А плюс Б», вот мой код:

#include <stdio.h>
int main() {
    int a, b;
    while (scanf("%d%d", &a, &b) != EOF) {
        printf("%d", a + b);
    }
    return 0;
}

ПРИМЕЧАНИЕ. НЕТ новой строки '\ n' после "% d".

↓↓↓↓↓↓↓↓↓↓↓↓↓ Вывод при нажатии кнопки «Отладка» в CLion:

(Я набрал «4 пробела 5 вернуть 6 пробел 7 вернуть команду + D (EOF)»)

/Users/i/CLionProjects/C_PersonalPractice/cmake-build-debug/sum
4 5
6 7 
^D
913
Process finished with exit code 0

↓↓↓↓↓↓↓↓↓↓↓↓↓ Вывод при нажатии Run в CLion:

(Я набрал «4 пробела 5 вернуть 6 пробел 7 вернуть команду + D (EOF)»)

/Users/i/CLionProjects/C_PersonalPractice/cmake-build-debug/sum
4 5
96 7
13^D

Process finished with exit code 0

↓↓↓↓↓↓↓↓↓↓↓↓↓ Вывод GCC в Терминале:

(Я набрал: «4 пробела 5 вернуть 6 пробел 7 вернуть управление + D (EOF)»)

Last login: Fri Oct 26 13:35:34 on ttys005
MacBook-Pro:~ i$ /Users/i/sum ; exit;
4 5
96 7
13logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[进程已完成]

В результате отладки я обнаружил, что среда IDE, похоже, отображает результат вычислений вместе, а не сразу после ввода двух чисел.

Это особенность или ошибка при отладке CLion?

Обновлять:

Этот код может быть в порядке во время отладки, если я ввожу новую строку '\ n' после "% d".

Кроме того, сегодня я столкнулся с еще одной похожей ошибкой, связанной с EOF:

отправка EOF на стандартный ввод в Clion IDE;

выполнить после EOF в C;

что было подтверждено JetBrains: https://youtrack.jetbrains.com/issue/CPP-5704

Ее решение - отключить run.processes.with.pty в реестре в CLion.


Я думаю, что эта проблема может быть сложной, если учесть все вышеперечисленные факторы: отладка или запуск, ввод новой строки или нет, отключение или включение «run.processes.with.pty».

ОТ: scanf("%d%d", &a, &b) != EOF ==> scanf("%d%d", &a, &b) == 2

4386427 26.10.2018 07:54

@ 4386427 Я сделал это, чтобы четко отразить введенное число и результат расчета. (Подумал) Это не имеет значения, конечно, я переделал. Я думал, что проблема в том, что IDE, кажется, отображает результат вычислений вместе, а не сразу после ввода двух чисел.

Zhang Wei 26.10.2018 08:32

Вывод отладчика clion неправильно буферизирован (программа видит его как неинтерактивное устройство)

Antti Haapala 26.10.2018 08:40
0
3
421
0

Другие вопросы по теме