none
Исключение при открытии файла через argv[] RRS feed

  • Вопрос

  • Добрый день!
    Следующий код выдаёт необработанное исключение при компиляции (Release). Судя по всему, проблема с MVS, т.к. у людей в других средах данный код работает.
    #include <iostream>
    #include <fstream>
    using namespace std;
    void main(int argc, char* argv[])
    {
    ifstream input(argv[1]); //на этой строке вылезает исключение "Необработанное исключение по адресу 0x742C1912 (ucrtbase.dll) в Test.exe: Недопустимый параметр был передан функции, для которой недопустимые параметры вызывают неустранимую ошибку."
    cout << "File:" << argv[1];
    system("pause");
    }

    Собственно, как решить проблему и из-за чего она появилась?

    Спасибо!

    20 января 2018 г. 13:05

Ответы

  • Здравствуйте. При компиляции такая ошибка возникнуть не может. Она может появиться при исполнении приложения. argv[1] - это первый параметр, переданный приложению при запуске в командной строке. Вы, судя по всему, запускаете приложение без параметров, поэтому argv[1] - неинициализированный указатель и приложение падает.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    21 января 2018 г. 18:15