У меня есть файл 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 находится в том же каталоге, что и мой исполняемый файл.
какой-нибудь ключ к пониманию того, что происходит?
Спасибо
Проверьте на ошибки! Попробуйте использовать полный путь к файлу при передаче его в качестве аргумента.
Мое предположение courseFile >> numCourses;
не удается, потому что ifstream coursesIn (argv[1])
не находит или не может получить доступ к файлу.
Попробуй это
if( courseFile >> numCourses )
cout << numCourses;
Это что-нибудь выводит тогда?
Других решений пока нет …