Заставить scanf завершить работу, когда он читает новую строку?

Если я ввожу 5 5 на терминале, нажимаю Enter и снова нажимаю Enter, я хочу выйти из цикла.

int readCoefficents(double complex *c){
    int i = 0;
    double real;
    double img;
    while(scanf("%f %f", &real, &img) == 2)
        c[i++] = real + img * I;


    c[i++] = 1 + 0*I; // most significant coefficient is assumed to be 1
    return i;
}

Очевидно, что этот код не t выполняет эту работу за меня (и да, я знаю, что ожидается переполнение буфера).

scanf не завершится, пока я не введу букву (или некоторую нечисловую, а не пробельную строку). Как мне заставить scanf завершить работу после прочтения пустой строки?

7
задан Matt 16 September 2010 в 01:16
поделиться