Я студент по программированию во втором классе ООП, мой первый класс преподавался на C #, а этот класс - на C ++. Чтобы научиться работать с C ++, наш профессор попросил нас написать довольно большую программу с File I / O. Проблема в том, что у меня есть небольшая часть моей программы, которая не работает, по крайней мере, не для меня. Проект требует, чтобы мы запрограммировали цикл для проверки возможности успешного открытия файла, и цикл, который я написал, похоже, не работает.
Я не получаю никаких ошибок компилятора, но когда я вхожу в путь к файлу, относительный или абсолютный, он говорит, что он недействителен. У меня такое ощущение, что это как-то связано с моими условиями в моей do-while
петле, но я не могу точно определить это.
Я не хочу доводить свою домашнюю работу до ТА, но я почесал голову два с лишним часа, и я не могу этого понять.
Не могли бы вы помочь мне исправить мою петлю? А может объяснить, что я делаю не так? Я хочу учиться.
Спасибо!
Код:
Rainfall rData;
ifstream actualReader;
ifstream averageReader;
string aRDataLoc;
char response = 'a';
const int KILL_VALUE = 1;
double actualRainfallD;
double actualRainfallPassedArray[ARRAY_CAPACITY];
double averageRainfallPassedArray[ARRAY_CAPACITY];
int i = 0;
do
{
actualReader.clear();
cout << "\nPlease enter in the path to the file containing the actual rainfall data." << endl;
cout << "Path to file: ";
cin >> aRDataLoc;
actualReader.open(aRDataLoc.c_str());
if (!actualReader.is_open())
{
cout << "Invalid file path! Would you like to enter in a new file path?(y/n): ";
cin >> response;
if (response == 'n') { exit(KILL_VALUE); }
}
}while (!actualReader.is_open() && response == 'y');