无法按预期从命令行提取数据

时间:2013-01-30 15:03:22

标签: c++ ifstream istream

我有一个course0.dat文件,第一行有4个,我想用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文件与我的可执行文件位于同一目录中。

关于发生了什么的任何线索?

感谢

1 个答案:

答案 0 :(得分:0)

检查错误!当您将其作为参数传递时,尝试使用文件的完整路径。

我的猜测是courseFile >> numCourses;失败,因为ifstream coursesIn (argv[1])找不到或无法访问该文件。

试试这个

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

它输出的是什么吗?