C 功能具有3个参数,可在通用二进制输入中读取

C++ function with 3 parameters for reading in generic binary input

本文关键字:二进制 输入 读取 功能 3个 参数      更新时间:2023-10-16

我正在尝试在files.cpp中创建一个function 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>'

我需要包括或从标准库中添加的东西吗?

谢谢

您应该考虑

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

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

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

在第二种情况下,您将在其他地方打开文件并传递流。但是,如果需要的话,也可以通过弦流。