Невозможно извлечь данные из командной строки, как ожидалось

У меня есть файл courses0.dat с одним 4 в строке 1, который я хочу извлечь с помощью своей программы ifstream:

void processEnrollments (std::istream& courseFile);

int main (int argc, char** argv)
{

// Take input and output file names from the command line
ifstream coursesIn (argv[1]);

return 0;
}

void processEnrollments (istream& courseFile)
{
int numCourses;
courseFile >> numCourses;

cout << numCourses;

// Create the arrays we need
//!! Insert your code here
}

когда я бегу

program courses0.dat

Мой тест показывает, что у меня 32767 вместо 4. Мой файл .dat находится в том же каталоге, что и мой исполняемый файл.

какой-нибудь ключ к пониманию того, что происходит?

Спасибо

0

Решение

Проверьте на ошибки! Попробуйте использовать полный путь к файлу при передаче его в качестве аргумента.

Мое предположение courseFile >> numCourses; не удается, потому что ifstream coursesIn (argv[1]) не находит или не может получить доступ к файлу.

Попробуй это

if( courseFile >> numCourses )
cout << numCourses;

Это что-нибудь выводит тогда?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]