带有3个参数的C ++函数,用于读取通用二进制输入

时间:2017-09-26 21:14:43

标签: c++ binary ostream istream

我正在尝试在files.cpp中创建一个带有3的函数getIdFromFile 参数:(表示文件名,istream和ostream的C ++字符串)并返回一个int。

这是我的起始代码:

// files.cpp
#include "files.hpp"
#include <iostream>
#include <fstream>
using std::ofstream;
using std::ifstream;
using std::ostream;
#include <sstream>
using std::string;
using std::stringstream;
using std::istream;
using std::istringstream;

int getIdFromFile (std::string(fileName),std::istream &usersData, std::ostream theStream){

    &usersData.open(fileName, std::ios::in|std::ios::binary);

}

我收到了错误:

No member named 'open' in 'std::__1::basic_istream<char>'

我需要在标准库中包含或添加某些内容吗?

由于

1 个答案:

答案 0 :(得分:0)

你应该考虑

 int getIdFromFile (std::string fileName, std::ifstream &usersData, std::ostream &theStream)

 int getIdFromStream (std::istream &usersData, std::ostream &theStream)

在第一种情况下,您希望打开一个新的或已关闭的文件流。您需要定义所有参数(例如模式)。原则上,您应该预见到一些错误处理,例如,如果文件名无效。

在第二种情况下,您将在其他位置打开该文件并传递流。但是如果你想要的话,你也可以传递一个字符串流。