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

C++ 无法按预期从命令行提取数据,c++,ifstream,istream,C++,Ifstream,Istream,我有一个courses0.dat文件,第1行有一个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 proce

我有一个courses0.dat文件,第1行有一个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
}
我的测试是32767而不是4。我的.dat文件与我的可执行文件位于同一目录中

关于发生了什么事有线索吗


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

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

试试这个

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

考虑到我们甚至不知道courses0.dat中有什么错误,我们应该如何判断错误……我看不出您是如何得到任何输出的,因为
processEnrollments
甚至没有被调用。是的,好吧,您太依赖
operator>
来做“正确的事情”。只需考虑文件中的胡言乱语,空行等。转到
std::getline
并从那里开始。我的第一句话是:“我有一个courses0.dat文件,第1行有一个4,我想用我的ifstream程序提取它:“@nobody我很抱歉,我的意思是包括:processEnrollments(coursesIn);主要是,;这是在我的程序中,我只是忘了把它包括在帖子中。谢谢你的帮助:)你的回复是第一个听起来不像他们在对我说话的人。我很感激。我的问题是xcode。我从终端使用g++编译,都在同一个目录中,看起来一切都很顺利。
if( courseFile >> numCourses )
    cout << numCourses;