Ошибка открытия файла с помощью ifstream в qt

Мой партнер написал кучу кода для одного из моих проектов в текстовом редакторе, когда я запускаю код, он работает отлично..... теперь я скопировал и вставил весь код в Qt Creator, и у меня возникла проблема

 stringstream ss;
            string line;
            ifstream myfile;
            myfile.open("Instructors.txt");
            if (myfile.is_open()){
                while (getline(myfile,line)){
                    ss << line << ", ";
                }
                myfile.close();
            }
            else cout << "bad open" << endl;

Выше приведена часть моего кода, в которой возникла проблема. Я могу заверить вас, что все файлы Instructors.txt действительно находятся в правильном файле, но каждый раз, когда наш код достигает этой точки, вместо открытия файла я получаю сообщение об ошибке "плохо открыт" "с чего бы это?

3 ответа

Решение

Трудно сказать, что это может быть без кода ошибки, что вы можете сделать, чтобы улучшить сообщение об ошибке с помощью чего-то более значимого (для вас и ваших клиентов):

else cout << "Error opening file: " << strerror(errno) << endl;

strerror (см. ссылку) функция возвращает строку для данного кода ошибки, записанного в errno макро.

В противном случае вы можете сделать это гораздо больше в C++, используя исключения: сначала включите их для вашего потока:

myfile.exceptions(ifstream::failbit | ifstream::badbit);

Тогда лови их, все вместе это:

try
{
    ifstream myfile("Instructors.txt");
    myfile.exceptions(ifstream::failbit | ifstream::badbit);

    while (getline(myfile, line))
    {
        ss << line << ", ";
    }

    myfile.close();
}
catch (ifstream::failure e)
{
    cout << e.what() << endl;
}

Попробуйте переписать имя файла, возможно, оно содержит символы из разных кодировок.

Дважды проверьте рабочий каталог, скорее всего, он находится в папке сборки (куда сбрасывается исполняемый файл)

в QtCreator вы можете исправить это, зайдя в проекты и выбрав run; там вы сможете установить рабочий каталог

Другие вопросы по тегам