Como detectar linhas vazias durante a leitura do objeto istream em C +

Como posso detectar se uma linha está vazia?

Eu tenho

1
2
3
4

5

Estou lendo isso com o istream r, então:

int n;
r >> n

Quero saber quando alcanço o espaço entre 4 e 5. Tentei ler como char e usar .peek () para detectar \ n, mas isso detecta o \ n que segue o número 1. A tradução da entrada acima é: 1 \ n2 \ n3 \ n4 \ n \ n5 \ n se eu estiver correto ...

Desde que eu vou manipular as entradas, prefiro lê-las como entradas do que usando getline e depois convertendo para int ...

questionAnswers(4)

yourAnswerToTheQuestion