从文件中读取数据并将其存储到向量中

2023-11-30

我正在尝试从文件中读取项目列表,然后将它们存储到向量中。问题是我的代码将最后一个项目添加到向量中两次,我不确定为什么它会继续读取文件,即使程序已到达末尾。

这是文本文件中的内容。当我显示矢量的内容时,“Oranges”行出现两次。

苹果-磅-10 2

橙子-磅-5 6

这是代码 //将列表内容读取到文件中

while (!inputFile.fail())
{   

    //Extract the line from the list
    getline(inputFile,item_name,'-');
    getline(inputFile,item_unit,'-');
    inputFile >> item_amount;
    inputFile >> item_price;

    //Create an instance of the item object
    Item New_Item(item_name, item_unit, item_amount,item_price);

    //Push it to the list vector
    list.push_back(New_Item);
}

//Close the file
inputFile.close();

这是该病的典型症状while (!infile.fail())反模式。

我定义一个结构和重载operator>>对于该类型:

struct item { 
    std::string name;
    std::string unit;
    int amount;
    int price;
};

std::istream &std::operator>>(std::istream &is, item &i) { 
    getline(is, i.name, '-');
    getline(is, i.unit, '-');
    is >> i.amount;
    return is >> i.price;
}

有了这些定义,读取数据就变得微不足道了:

std::ifstream inputFile("fileNameHere");

std::vector<New_Item> items { std::istream_iterator<Item>(inputFile),
                              std::istream_iterator<Item>() };

[我把它从list to vector,因为,嗯,你真的不想要list。你可以把它改回来,但可能不应该。]

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

从文件中读取数据并将其存储到向量中 的相关文章

  • 无法使用 strptime() 获取秒数

    我收到 YYYY MM DDThh mm ss S Z hh mm 这种格式的日期时间 我正在尝试使用复制该值strptime如下所示 struct tm time 0 char pEnd strptime datetime Y m dT
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • 在 Angular 2 中使用 ComponentResolver 加载组件时注入不同的提供程序

    我们可以在动态加载组件时注入不同的提供程序吗 我的组件 Component moduleId module id selector my component template div my component div providers M
  • Wikidata+SPARQL:根据股票代码查找公司

    我正在尝试使用 sparql 根据股票代码查找公司 此查询将列出企业及其股票代码 基本查询 SELECT DISTINCT id idLabel ticker WHERE id wdt P31 wdt P279 wd Q4830453 id
  • 如何防止ViewFlipper循环

    我正在开发一个应用程序 其中我使用ViewFlipper与定制OnTouch执行 在里面ViewFlipper 我有大约 20 张图像供用户翻阅 这工作正常 但如果我在该系列中的第 20 个图像处翻转屏幕 它会返回到第一个图像 我想防止Vi
  • AES 姜饼

    This是我的 AES 代码 在 Gingerbread 下 在 2 2 上加密数据然后尝试在 2 3 上解密后出现以下错误 Caused by javax crypto BadPaddingException pad block corr
  • VBA 使用循环引用文本框或标签

    我正在尝试替换以下内容 txt1 Text txt2 Text txt3 Text txt4 text continues for quite awhile With Dim cCont As Control For Each cCont
  • 登录时未通过凭据提供程序加载 KSP(密钥存储提供程序)

    我正在创建一个 Windows 凭据提供程序 以使用此处所述的证书登录到 Windows 域article 这意味着创建一个自定义 KSP 在创建身份验证包时将由 LsaLogonUser 调用 我设法创建自定义 KSP 并在直接调用 Ls
  • JQuery在渲染后搜索dom元素,并用其对应的值替换键

    我正在尝试在我正在开发的网络应用程序上应用我自己的本地化方法 知道我正在使用 JQuery 2 2 0 没有任何其他框架或第三方 我需要在纯 html 代码中编写一些表达式 ex 1 span lang details span ex 2
  • 如何在打字稿中选择性地从一个部分分配到另一个部分

    在下面的 TypeScript 代码片段中 我需要将一个对象分配给另一个对象 其中两个对象都在Partial
  • 当客户向您提供他们的公共证书时进行相互身份验证

    通常 2 路 ssl 又名相互身份验证包括生成服务器 ca 密钥和证书等 然后客户端生成一辆车 将其交给您 您签署他们的 csr 并向他们提供客户端证书 然而 我遇到过一种情况 客户要求我通过交换彼此的 x509 公共证书来实现 相互身份验
  • 使用 Apache POI 创建 .xlsx 文件时出现 java.lang.NoClassDefFoundError

    我正在尝试使用 Apache POI 创建 xlsx 文件 这是我的代码 FileOutputStream outputStream1 null XSSFWorkbook workbook new XSSFWorkbook XSSFShee
  • Cython 预编译器决策[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我正在寻找一种在 cython 文件中添加预编译器逻辑的解决方案 我已经为 C 中的硬件设备 API 编写了一个 cython 包装器 这是一个 cython 项目 通常使用 MSVC
  • 如何根据点是否在多边形内来标记点

    我有新西兰各地鸟类观测的经度和纬度 存储在Count df 在变量下count longitude and latitude 然而 其中一些出现在近海 海洋中 这是一个公民科学数据集 我想根据这些点是否超出中给出的信息来对它们进行子集化ma
  • 在 WooCommerce 中阻止在没有送货方式的情况下访问结账

    我正在尝试删除继续结帐按钮并限制对结帐页面的访问 直到客户填写购物篮页面上的 计算运费 选项 我创建了一种仅限于多个邮政编码 邮政编码的本地运输方法 然后我将其添加到我的functions php 文件中 function disable
  • EF 的代理键与自然键

    我和我的同事正在尝试确定哪种方法是为两个数据库表设计架构和键的更好方法 一种是很少改变的查找表 它有大约 700 行 另一个表引用查找表 随着时间的推移 该表将有数千行 在设计 B 中 查找表的主键由 3 个 varchar 组成 另一个表
  • 将 VoiceOver 推进到移动 Safari 中的指定元素

    我无法弄清楚如何将 VoiceOver 推进到 Mobile Safari 中的特定元素 到目前为止 我已经尝试过 a href target Skip a a a 如果页面可滚动 但在长页面和短页面上不一致 这将 有时 前进到目标 有时会
  • 解析Excel文件的通用方法

    我需要解析 Excel 文件并从中创建对象列表 为了做同样的事情 我们正在使用有org apache poi为了读取 Excel 文件并且我们能够获取所需的详细信息 目前我们正在根据索引获取单元格值并将其设置到对象字段 但我们认为这不是一个
  • 在Python中按日期范围过滤日志的最佳方法

    打印与日期时间范围匹配的日志行的最佳方法是什么 例如 我只想打印带日期的行 来源 2012 09 30 00 00 10 至 2012 09 30 00 00 13 2012 09 30 00 00 08 773 log error 201
  • 计算平均值时如何避免潜在的溢出?

    我正在编写一个函数来获取调用特定的时钟的平均值void void aka void gt void运行特定次数 我担心如果样本量太大 观察值的总和会溢出并使平均值无效 是否有一种标准方法可以消除此类问题中总和溢出的可能性 注意 我知道这个例
  • 无法创建从插件到 Web 服务的 SSL/TLS 安全通道

    当我尝试使用服务引用中的方法时 我的插件出现问题 我有一个client将参数发送到网络服务 然后将这些参数发送到我的插件 然后我必须获取这些参数并将它们发送到网络服务用一个网络参考方法 要访问 Web 服务 我需要使用由拥有最后一个 Web
  • 从文件中读取数据并将其存储到向量中

    我正在尝试从文件中读取项目列表 然后将它们存储到向量中 问题是我的代码将最后一个项目添加到向量中两次 我不确定为什么它会继续读取文件 即使程序已到达末尾 这是文本文件中的内容 当我显示矢量的内容时 Oranges 行出现两次 苹果 磅 10