如何在将istream var传递给函数后提取数据

时间:2013-01-30 13:51:47

标签: c++ ifstream istream

我目前正在运行一个命令行输入程序,用于从命令行参数中提取数据,将其粘贴在 ifstream 中,然后通过引用将其传递给我必须从中提取信息的函数文件。

首先,我理解“

ifstream coursesIn (argv[1]);

将我的输入文件名放入ifstream类型的courseIn变量中。从这里开始,我可以执行.open(argv [1])等操作;为了提取必要的数据。

接下来是我要将变量传递给一个名为processEnrollments(coursesIn)的函数

其原型如下:

processEnrollments (std::istream& courseFile);

一旦我把变量放在函数中并且在函数内部,我的教授提供了这段代码:

void processEnrollments (istream& courseFile, istream& enrollmentRequestsFile,
         ostream& reportFile)
{
int numCourses;
courseFile >> numCourses;

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

首先,我不知道他试图用函数内的前两行做什么,其次,我不能再执行我的.open(argv [1])方法来从中提取数据文件名。

在功能之外,我相信我可以得到我需要的一切,但过了之后,我不知所措。

感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:0)

您真的需要阅读有关流的更多信息。

声明

ifstream coursesIn (argv[1]);

创建一个变量coursesIn,只要你是对的,但它也打开文件,其文件名由argv[1]提供。如果你喜欢这样,你以后不需要open

对于函数,其中的第一行声明一个整数变量,第二行从文件courseFile读取一个整数并将其存储在numCourses变量中。

最后,请记住,所有输入流都具有相同的基数,因此如果您可以读取来自例如cin您还可以从文件中读取输入。