Я пытаюсь вернуть функцию boolean и адрес в памяти.Функция возвращает логическое значение и адрес? C++
Я загружаю файл из архива и хотел бы, чтобы он возвращал A., если файл был найден, и B. указатель на файл в памяти после его загрузки. Я понимаю, что у меня нет двух типов возврата, поэтому у меня есть функция как логическая, поэтому она может сказать мне более важно, если файл существует в архиве. Я полагал, что я хотел бы сделать что-то вроде этого:
// Hold the location of the file
char* location = NULL;
if(!archive.getFile(name, location))
{
errorLog.writeError("Could not find the file!");
return false;
}
Если файл не найден, то функция, которая вызывает GetFile возвратит ложь, указывающий файл не был найден. Это отлично работает. Но я пытаюсь выяснить, как напрямую изменить указатель «местоположение» из функции getFile.
Пропускать ли указатель? Или я могу передать адрес указателя и изменить его?
Вот функция в моем заголовке:
bool archive::getFile(string filename, char& location)
Подведем итоги, я хочу передать в «местоположение» указателя, чтобы она указывала на файл в архиве с функцией GetFile, а затем, когда его возвращает, сможет использовать указатель «location» для доступа к файлу.
спасибо.
То, что мне нужно. Спасибо. –
Вы также можете создать исключение, если файл не найден. Это позволяет вам более точно контролировать сообщения об ошибках, так как вы можете «вернуть» довольно много разных ошибок. – Thilo
@Thilo: это вопрос мнения, но я бы не стал рассматривать здесь исключение - я предполагаю, что не найти файл в архиве - это то, что должно произойти при нормальных обстоятельствах, поэтому его следует обрабатывать обычным потоком управления , Храните исключения в исключительных условиях. (Но, как сказано, это субъективно/зависит от стандартов контекста/кодирования/окружающего кода и т. Д.) – Mat