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