Как завершить ввод только одним Ctrl + d - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть школьное задание на программирование симулятора машины самообслуживания. Чтобы держать это в теме, моя проблема с вводом значений монет / заметок.

Способ ввода подразумевается, что вы вводите его в одну строку и заканчиваете строку 0, или вы можете завершить его, нажав Ctl + d один раз (в частности, один раз)

Что я есть это:

#inlcude <stdio.h>

void main(){
    double number=0, sum=0;

    while(scanf("%lf", &number)==1 && number!=0){
        //do some stuff with number to check if it's a valid coin        

        sum+=number;
    }
}

Это нормально работает, если я заканчиваю строку 0, но если я пытаюсь завершить Ctrl + d, я должен нажать ее дважды. Я не единственный в своем классе, у кого есть эта проблема, но учитель говорит, что она работала, используя scanf (), и, как ей это нужно, нужно только одно Ctrl + d.

Есть ли способ сделать это?

...