#c #function
Вопрос:
Я пишу функцию, которая проверяет, можно ли открыть файл или нет. Однако я не знаю, является ли bool правильным типом.
Любая помощь будет оценена.
Спасибо!
bool checkFileOpen (ifstream fin)
{
if (!fin)
{
cout << "Unable to open file";
return EXIT_FAILURE;
}
}
Комментарии:
1. Эта функция проверяет, открыт ли файл, а не «может быть открыт «.
2. Если
EXIT_FAILURE
не равно нулю, это будет возвращено какtrue
. Почему бы и нетreturn false
?3. Эта функция не должна возвращать состояние выхода. Он должен возвращать
true
илиfalse
, и пусть вызывающий решает, как справиться с ошибкой.
Ответ №1:
Они предназначены для возврата main
или передачи exit
, поэтому правильный тип int
.
Ответ №2:
Согласно https://en.cppreference.com/w/c/program/EXIT_status , эти макросы являются /*implementation defined*/
Вы можете либо найти его для своей платформы, либо перевести на выбранный вами тип.
Комментарии:
1. Они предназначены для возврата из
main
возвращаемого типаint