Ifstream 读取函数未加载到向量中

2024-01-09

我对编程有点陌生,所以我不确定如何搜索这个问题,而且我知道我问了另外两个关于这个问题的问题,但我似乎无法让它工作。

我遇到了一个问题,我有一个向量:

vector<Device*> Devicelist_;

我尝试加载设备以使用此功能(我已经制作了一个保存功能,该功能有效):

bool Devicelist::LoadFromFile() //Opdaterer vector<Device> fra fil
{
    ifstream LoadFile("Devices.dat", ios::in | ios::binary);

    if (!LoadFile)
    {
        cerr << "File could not be opened." << endl;
        return false;
    }

    LoadFile.seekg(0, ios::end);
    int numberOfDevices = LoadFile.tellg() / sizeof(Device);

    for (int i = 0; i < numberOfDevices; i++)
    {   
        Devicelist_.push_back(new Device);
        LoadFile.read(reinterpret_cast<char *>(Devicelist_[i]), sizeof(Device));
    }

    cout << Devicelist_[0]->getName() << endl;

    LoadFile.close();
    return true;
}

问题是LoadFile.read()不将任何设备加载到设备列表中。

你能看出我的问题是什么吗?提前致谢。


你的问题其实很简单。您忘记重置您的获取位置:

LoadFile.seekg(0, ios::end);
int numberOfDevices = LoadFile.tellg() / sizeof(Device);

for (int i = 0; i < numberOfDevices; i++)

应该

LoadFile.seekg(0, ios::end);
int numberOfDevices = LoadFile.tellg() / sizeof(Device);
LoadFile.seekg(0L, ios::beg);
for (int i = 0; i < numberOfDevices; i++)

查找数字的另一种方法是使用 stat:

#include <sys/stat.h>
int getNumberOfDevices(char *filename)
{
    struct stat st;
    return st.st_size / sizeof(Device);
}

或者,如果你想避免统计,你可以这样做:

bool Devicelist::LoadFromFile() //Opdaterer vector<Device> fra fil
{
    ifstream LoadFile("Devices.dat", ios::in | ios::binary);
    if (!LoadFile)
    {
        cerr << "File could not be opened." << endl;
        return false;
    }
    int numberOfDevices = 0;
    while (true)
    {   
        Device *tmp = new device; 
        LoadFile.read(reinterpret_cast<char *>(tmp), sizeof(Device));
        if (LoadFile.good()) //we successfully read one
        {
            ++numberOfDevices;
            Devicelist_.push_back(tmp);
        }
        else break; //get out of the infinite loop
    }
    cout << Devicelist_[0]->getName() << endl;
    LoadFile.close();
    return true;
}

这样,它就可以读取所有这些数据,而不会弄乱位置,并在完成后进行计数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ifstream 读取函数未加载到向量中 的相关文章

  • 使用 #pragma Once 和 #ifndef 时出现 VS 2010 C++ LNK2005 错误

    1 gt Deck obj error LNK2005 class Card card card 3VCard A already defined in Card obj 1 gt PokerTester obj error LNK2005
  • 在 WCF 上重用我的 PagedList 对象

    问题 我有一个自定义集合PagedList
  • Qt/c++ 随机字符串生成[重复]

    这个问题在这里已经有答案了 我正在创建一个应用程序 需要生成多个随机字符串 几乎就像一个由一定长度的 ASCII 字符组成的唯一 ID 这些字符混合有大写 小写 数字字符 有没有 Qt 库可以实现这一点 如果没有 在纯 C 中生成多个随机字
  • 头文件中实现的函数的静态与内联

    我想到的方式inline在 C 中用于链接 作用域 我把它放在同一个篮子里extern and static对于全局对象 通常 对于在头文件中实现的函数 我的首选解决方案是将其设为静态 In Foo h static void foo Do
  • C# 中类似图的实现

    所以我有一个对象 我们称之为 Head 它有一个对象列表 C C1 C2 C3 T T1 T2 和 M M1 M2 并且所有这些都是相互关联的 例如 Head gt C1 C2 C3 T1 T2 M1 M2 T1 gt C1 C2 T2 g
  • Winform DatagridView 数字列排序

    我只使用一个简单的 DataGridView 来保存一堆数据 有趣的是 我在特定列中有小数 但是当按小数列排序时 它的排序是错误的 例如 起始顺序可能是 0 56 3 45 500 89 20078 90 1 56 100 29 2 39
  • 对 ExecuteNonQuery() 的单次调用是原子的

    对 ExecuteNonQuery 的单次调用是否是原子的 或者如果单个 DbCommand 中有多个 sql 语句 那么使用事务是否有意义 请参阅我的示例以进行说明 using var ts new TransactionScope us
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • FluentAssertions ShouldNotThrow 无法识别异步方法/Func

    我正在尝试检查异步方法是否抛出具体异常 为此 我使用 MSTEST 和 FluentAssertions 2 0 1 我已经检查过这个关于 Codeplex 的讨论 http fluentassertions codeplex com wo
  • 查找方法不适用于 EF6.1 模拟

    我已经使用这些 msdn 指南设置了模拟 使用模拟框架进行测试 EF6 及以上 http msdn microsoft com en us data dn314429 var bsAc db BusAcnts FirstOrDefault
  • ASP.net WebForms - 在标记中使用 GetRouteUrl

    我一直在尝试弄清楚如何将路由功能与 ASP net 4 0 WebForms 一起使用 我将一条路线添加到我的路线集合中 void Application Start RegisterRoutes RouteTable Routes voi
  • 冒号在c中起什么作用?

    我在课堂上得到了这个例子 但我不确定它的作用 我知道冒号添加了一个位字段 但我仍然不确定这个问题 a b gt 0 3 1 运算符称为条件运算符 If b值为 gt 0 价值3被分配给a否则值1被分配给a 以 Kernighan Ritch
  • Windows 上本机 C++ 应用程序中的自动死代码检测?

    背景 我有一个用原生 C 编写的应用程序 花了几年的时间 大约有 60 KLOC 有很多函数和类已经死了 可能有 10 15 就像下面提出的类似的基于 Unix 的问题 我们最近开始对所有新代码进行单元测试 并尽可能将其应用于修改后的代码
  • 使用 dateTimePicker 在 DataGridView 中编辑日期

    我有一个DateTime我的 WinForms 中的专栏DataGridView 目前只能通过手动输入日期来编辑该字段 例如 2010 09 02 需要什么才能拥有一个DateTimePicker 或同等 用作编辑器 DataGridVie
  • 调试错误:在 vc++ 项目中使用 COM 时发生 所需的运行时?

    我为我的工作创建了一个 COM 组件 我也注册了该组件 在我的系统上 我有两个虚拟机工作站 在我的第一个工作站中 它运行良好 在我的第二个工作站中 它显示一个包含消息的错误框该程序需要一段时间并以不寻常的方式关闭 请联系应用程序管理员 我认
  • 如何重用具有稍微不同的 ProcessStartInfo 实例的 Process 实例?

    我有以下开始的代码robocopy https technet microsoft com en us library cc733145 aspx as a Process 我还需要进行数据库查询以确定每次需要复制哪些目录robocopy被
  • 使用任务的经典永无止境的线程循环?

    给出了一个非常常见的线程场景 宣言 private Thread thread private bool isRunning false Start thread new Thread gt NeverEndingProc thread S
  • 检查一个数是否是完全平方数?

    我认为以下代码存在精度问题 bool isPerfectSquare long long n long long squareRootN long long sqrt n 0 5 return squareRootN squareRootN
  • 在 LP2844Z(Zebra 打印机)上的收据中包含 PNG [重复]

    这个问题在这里已经有答案了 我正在致力于创建一个基于 HTML5 画布的签名 绘图框 目前我们在服务器上将画布保存为PNG 但可以轻松地将base64字符串保存在数据库中 现在的问题是我们如何在打印的收据上添加签名 目前我们使用 GF 字段
  • 如何通过API退出Win32应用程序?

    我有一个使用 Win32 API 编写的 C Win32 应用程序 我希望强制它在其中一个函数中退出 有没有类似的东西Exit or Destroy or Abort 类似的东西会终止它吗 哎呀呀呀呀呀呀 不要做任何这些事情 exit 和

随机推荐

  • 具有私有 IP 的 Kubernetes 入口控制器

    是否可以在没有公共 IP 地址的情况下部署入口控制器 nginx Thanks 是否可以在没有公共 IP 地址的情况下部署入口控制器 nginx 毫无疑问 是的 如果 Ingress 控制器的Service is of type NodeP
  • 如何显示 url 中的图像?

    我有一个字符串变量tmpImgURLStr其中包含类似的 URLwww abc com img png 我想在我的 imageView 中显示该图像 因为我使用了一些代码 但它不起作用 如下所示 NSLog Img URL tmpImgUR
  • C++:按值将对象传递给同一类的成员函数

    我是 C 的初学者 刚刚开始学习 OOP 在下面的程序中 我添加了相同类的对象并显示了结果 但是 我无法理解这样一个事实 如果我按值将对象传递给函数 那么更改如何反映在调用函数中 这addNumbers 函数需要 Complex 类的两个对
  • 如何在test-cafe中使用数据发出post请求?

    我是 api 测试的初学者 我正在使用test cafe我已经写了测试来制作GET请求使用请求钩子工作正常 我能够获取数据 但是当我尝试制作时POST请求使用相同的请求钩子并且我在发出请求时无法发送数据 因为它需要是缓冲区类型 我无法将 J
  • 在 redux-observable 中编写和排序多个史诗

    我有一个问题不知道如何解决 我有两个史诗向 api 发出请求并更新商店 const mapSuccess actionType gt response gt type actionType SUCCESS payload response
  • 在单元测试中获取控制器的编译模板

    我有以下控制器 angular module app controller userList scope appRules function scope appRules scope isUserInRole function user r
  • 如何直接从 Rails 控制器返回 HTML?

    我的模型对象之一有一个 文本 列 其中包含网页的完整 HTML 我想编写一个控制器操作 它直接从控制器返回此 HTML 而不是像控制器上的其他操作一样通过 erb 模板传递它 我的第一个想法是将此操作放入一个新控制器中 并制作一个具有空布局
  • 带计数的堆叠条形图中 geom_text 的百分比

    我想要一个堆叠条形图 其中包含基于计数的百分比 我几乎达到了我想要的 但文本中的每个值都是 100 而不是真正的百分比 我认为我的代码中有一个小错误 但我找不到它 ggplot mtcars aes fill factor gear x f
  • 改进通过 JSON 将服务器数据库镜像到客户端数据库的过程?

    我有一个现成的适用于 iPad 的企业 非 AppStore 旧版 iOS 应用程序 我需要重构它 它是由另一位开发人员编写的 他是我当前工作的前任 该应用程序通过 JSON 从具有 MSSQL 数据库的服务器获取数据 数据库模式有大约 3
  • 交错?锁链?由一系列不同的delay()和duration()的d3转换寻址的单个DOM元素

    正如所解释的here http bost ocks org mike transition per element 您可以安排连续的转换驱动的属性值更改singleelement 使用transition transition 它创建一个新
  • 从另一个页面的代码隐藏中获取 ASP.Net 页面的 URL

    我试图从页面对象中找到确定页面 url 的方法 看来你只能获取当前上下文的路径 一个页面可以有多个 url 例如 我家里有一台服务器正在运行 并且该站点的 URL 根据我从何处查看而有所不同 当我在家时 我只使用内部服务器名称 这样流量就不
  • Java 9 中的 native2ascii 可执行文件发生了什么

    我正在尝试使用 java 9 编译我的应用程序 但它失败了 因为 native2ascii 可执行文件不存在 Java 9 中删除了吗 还有其他工具可以做同样的事情吗 是的 native2ascii 在 Java 9 中被删除了 错误报告以
  • 从 url 到 JSON 到 HTML

    我目前正在尝试学习 RESTful API 并将它们实现到用例中 我想做的一件事是将带有 json 有效负载的 url 从一台服务器加载到单独的 Web 服务器中 以在表上显示数据 我对此不太熟悉 所以我试图找到最好的方法来做到这一点 我正
  • 如何在C++中创建具有动态对齐要求的对象?

    C 中分配和使用具有动态指定对齐方式的缓冲区的正确方法是什么 我想到的用例是 Vulkan 动态统一缓冲区 请参阅上一个问题 https stackoverflow com q 45458918 9723177其中抽象地讨论了所需的过程 其
  • 如何在 JavaScript 中监听三次点击?

    如果这是双击 window addEventListener dblclick function event false 如何捕捉三次点击 这适用于 Google Chrome 中的固定选项卡 您需要编写自己的三次点击实现 因为不存在可以捕
  • 与 Sql Geometry 字段不同的棘手 sql

    我有一个与以下不兼容的sql语句Sql Geometry输入所以我正在尝试修改它以使其正常工作 它的基本要点是这样的 Select distinct A B C D SHAPE FROM TABLE1 UNION SELECT A B C
  • 如何在Python中按下某个键时停止程序?

    我有一个无限循环的程序 每 5 秒打印一次 程序正在运行 我想在按结束键时停止它 因此 我创建了一个按键侦听器 如果按下结束键 该侦听器将返回 false 如果我没有无限循环 那应该可行 即使我处于无限循环中 我也希望它能够工作 这是我的代
  • TabControl / TabPanel / TabItem 的 WPF 样式

    这是关于 WPF TabControl TabItem 和 TabPanel 的新手问题 StackOVF 上有一个相关问题 我很高兴在我的应用程序中使用了一个答案 这是答案的链接以及代码片段 WPF TabControl 中的中心 Tab
  • Yii2 isGuest 在控制台应用程序中给出异常

    在我使用时的控制台应用程序中Yii app gt user gt isGuest它给出了以下例外 Exception yii base UnknownPropertyException with message Getting unknow
  • Ifstream 读取函数未加载到向量中

    我对编程有点陌生 所以我不确定如何搜索这个问题 而且我知道我问了另外两个关于这个问题的问题 但我似乎无法让它工作 我遇到了一个问题 我有一个向量 vector