Я студент колледжа, изучаю C. Я использую CLion 2018.2.5 в macOS 10.14 mojave.
Это простая проблема "A плюс B", вот мой код:
#include <stdio.h>
int main() {
int a, b;
while (scanf("%d%d", &a, &b) != EOF) {
printf("%d", a + b);
}
return 0;
}
ПРИМЕЧАНИЕ: после "% d" НЕТ новой строки. \ 1006 *
↓↓↓↓↓↓↓↓↓↓↓↓↓ Вывод, нажав Отладка в 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".