легко, если вы разбиваете строки возврата, вы знаете, что он возвращает ненулевое значение для ошибки, так что это плюс.
!is.eof() || !os;
eof означает «конец файла», поэтому первая часть читает«если это не конец файла», вторая часть означает «если файла нет», так как вы пытались что-то сохранить в файл, отсутствие файла - ошибка.
, поэтому строкаможно прочитать:
return not(are we in the end of the file that we are reading?)
or not (the output file exists?)
, так что будет возвращено значение true, если входной файл завершен, а выходной файл существует, в противном случае - значение false.