Я запустил эту программу в Visual Studio, используя main()
, и она исправна для меня после исправления нескольких проблем:
- Добавление заголовков: string, fstream, iostream.
- Создание ИКАО std :: string.
- Добавление типа возвращаемого значения в функцию и добавление в конце слова "return what".
- Вместо "или" Я использовал ||.
- Создание "правильного" типа bool.
- Добавление всех "std ::".
Вот мой рабочий код.Это работает для меня.Проверьте разницу с вашей (я добавил std::couts
, чтобы проверить, какая if
активирована).Если это все еще не работает, возможно, проблема в вашей переменной ICAO
(это не LEAL или LEPA), в вашем классе Airport
, или, возможно, у вас нет файлов .txt в правильных каталогах.
#include <string>
#include <fstream>
#include <iostream>
int main() {
std::string apt = "LEPA";
std::ifstream datasid;
std::ifstream datastar;
std::string ICAO = apt;
if (ICAO == "LEPA") {
datasid.open("LEPASID.txt");
datastar.open("LEPASTAR.txt");
std::cout << "LEPA OK";
}
else if (ICAO == "LEAL") {
datasid.open("LEALSID.txt");
datastar.open("LEALSTAR.txt");
std::cout << "LEAL OK";
}
else {
std::cout << "El aeropuerto no se encuentra en la base de datos." << std::endl;
bool correct = false;
}
if (datasid.fail() || datastar.fail())
std::cout << "Se ha producido un error al leer los datos del aeropuerto"
<< std::endl;