Как я могу сделать scanf (), чтобы получить значение b? - PullRequest
0 голосов
/ 20 января 2020
   int a,b;
    while (scanf("%d",&a) != EOF){
        printf("%d ",a);
    }
    printf("\n");
    printf("Pls enter value b\n");
    scanf("%d",&b);
    printf("%d",b);
    return 0;

Когда я набираю и затем использую команду + D, чтобы выпрыгнуть из времени, пока l oop, я не могу ввести его снова в это время, в результате чего значение b будет случайным. enter image description here

Ответы [ 2 ]

0 голосов
/ 20 января 2020

Я получил письмо от IntelliJ, Вы можете его увидеть. Я печатаю ссылки, чтобы вы могли получить доступ к ссылке. email-content: Существует проблема с отправкой EOF в CLion: https://youtrack.jetbrains.com/issue/CPP-5704. Отключение run.processes.with.pty - это обходной путь, который помогает печатать выходные данные после EOF. Но у этого обходного пути есть свои недостатки, такие как тот, с которым вы столкнулись при использовании scanf () после EOF. К сожалению, невозможно получить оба вывода после EOF и scanf () после правильной работы EOF, пока проблема (https://youtrack.jetbrains.com/issue/CPP-5704) не будет решена. Не стесняйтесь комментировать или поднять вопрос, чтобы получать обновления. См. https://intellij-support.jetbrains.com/hc/en-us/articles/207241135-How-to-follow-YouTrack-issues-and-receive-notifications, если вы не знакомы с YouTrack.

Приносим извинения за неудобства.

С уважением, Анна Фалевская JetBrains http://www.jetbrains.com Стремление к развитию

enter image description here

0 голосов
/ 20 января 2020

Как и предполагали другие, вы должны найти другой способ прекратить ваше l oop. Хотя здесь есть обходной путь:

#include <stdio.h>

int main(){
 int a,b;
    while (scanf("%d",&a)!=EOF){
        printf("%d ",a);
    }
    printf("\n");
    printf("Pls enter value b\n");
    freopen("/dev/tty", "r", stdin); /* Change /dev/tty to con: if you are using windows */
    scanf("%d",&b);
    printf("%d",b);
    return 0;

}

Вы можете использовать freopen для принудительного ввода с консоли.

...