Я просматриваю учебник по C++, который у меня есть для освежения знаний по программированию на C++. Одна из практических задач (не вдаваясь в подробности) требует, чтобы я определил функцию, которая может быть передана ifstream или cin (например, istream) в качестве аргумента. Оттуда я должен прочитать поток. Проблема в том, что я не могу придумать, как заставить эту функцию one использовать cin и ifstream для эффективного поиска конца потока. А именно,
while(input_stream.peek() != EOF)
не будет работать для cin. Я мог бы переработать функцию для поиска определенной фразы (например, «#Конец потока#» или что-то в этом роде), но я думаю, что это плохая идея, если в файловом потоке, который я передаю, есть именно эта фраза.
Я думал использовать перегрузку функций, но до сих пор в книге упоминалось, когда мне нужно это сделать. Возможно, я трачу слишком много усилий на эту единственную практическую задачу, но мне нравится творческий процесс, и мне любопытно, есть ли такой способ сделать это без перегрузки.