C++ - 从文件读取到双精度[关闭]

2023-11-26

我对编程还比较陌生,目前正在学习 C++ 课程。到目前为止我还没有遇到任何重大问题。我正在制作一个程序,其中 X 数量的评委可以打出 0.0 - 10.0(双倍)的分数,然后删除最高和最低的分数,然后计算并打印出平均值。

这部分已经完成,现在我想从以下形式的文件中读取: 示例.txt - 10.0 9.5 6.4 3.4 7.5

但我偶然发现了点 (.) 的问题以及如何解决它以将数字转换为双精度。有什么建议和(好的)解释以便我能理解吗?


TL;DR:从文件(例如“9.7”)读取双精度变量以放入数组中。


自从你的文本文件以空格分隔,您可以利用这一点来发挥您的优势std::istream默认情况下跳过空白的对象(在本例中,std::fstream):

#include <fstream>
#include <vector>
#include <cstdlib>
#include <iostream>

int main() {
    std::ifstream ifile("example.txt", std::ios::in);
    std::vector<double> scores;

    //check to see that the file was opened correctly:
    if (!ifile.is_open()) {
        std::cerr << "There was a problem opening the input file!\n";
        exit(1);//exit or do additional error checking
    }

    double num = 0.0;
    //keep storing values from the text file so long as data exists:
    while (ifile >> num) {
        scores.push_back(num);
    }

    //verify that the scores were stored correctly:
    for (int i = 0; i < scores.size(); ++i) {
        std::cout << scores[i] << std::endl;
    }

    return 0;
}

Note:

强烈推荐使用vectors出于多种原因,尽可能代替动态数组,如下所述:

在 C++ 中什么时候使用向量,什么时候使用数组?

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

C++ - 从文件读取到双精度[关闭] 的相关文章

随机推荐

  • 如何通过 Datastax Java 驱动程序使用异步/批量写入功能

    我计划使用 Datastax Java 驱动程序写入 Cassandra 我主要感兴趣的是Batch Writes and AsycnhronousDatastax java 驱动程序的功能 但我无法获得任何教程来解释如何将这些功能合并到使
  • 避免将文本转换为链接即内容可编辑模式

    在 contenteditable div 中 在 IE 文本中 如 http blablabla www blablabla bla blabla 等自动转换为超链接http blablabla 布拉布拉布拉 bla blabla 我怎样
  • ionic 中自动增长文本区域

    我正在尝试向我的应用程序添加自动增长的文本区域 但由于某种原因它不起作用 我正在使用的模块是https github com tagged autogrow 在ionic论坛上推荐的 上面的答案并没有缩小 这是一个改进的版本 https c
  • 如何在 SQL Server Management Studio 上启用自动事务范围?

    我习惯于使用类似的工具Toad or PL Sql 开发人员对于 Oracle 我在查询窗口上运行的每个 SQL 语句都会在事务范围下自动运行 因此 如果我的 SQL 语句不正确 或者即使我错过了 SQL 脚本中的某些内容 我也只能通过单击
  • 如何通过单击模式窗口外部来关闭模式?

    在一个非常简单的 jQuery 模式中 我通过单击 CLOSE 来关闭模式 close click function e e preventDefault overlay alertModalOuter fadeOut 400 functi
  • 如何在ZF2中渲染具有布局的邮件模板?

    在 ZF1 中 我使用以下代码来呈现邮件正文 View erstellen view new Zend View Layout erstellen layout new Zend Layout HelperPath muss hier no
  • 用户输入+Ruby+正则表达式?

    我想为用户提供一个可以输入文本的文本区域 稍后我会将该输入与不同的输入进行匹配 如果匹配则将其提取 Flow 用户在文本区域中输入带回车的文本 文本保存在数据库的文本字段中 然后我使用以下内容来提取 text reply text repl
  • Python:这两个导入语句有什么区别?

    它们在功能上对我来说看起来都是一样的 使用其中一种与另一种相比有什么区别和优势吗 gt gt gt from datetime import datetime timedelta gt gt gt from datetime import
  • 从 com.apple.main-thread 入队(线程 1)崩溃 | iOS |斯威夫特 4.1

    上面发生了什么 从接收到的用户数据数组初始化领域模型 在后台线程中将所有模型一次性写入领域数据库中 如果领域模型已经存在 则通过创建副本进行更新 任何人都可以在这里指导我关于我做错了什么 我遇到了类似的问题 在这里 您可能正在从不同的线程访
  • 编译器对 PerformSelectorOnMainThread:@selector(delegateMethod) 发出警告

    我有一个包含一些 Web 服务功能的 NSOperation NSOperation 有一个委托 当操作结束时将向该委托发送消息 由于 NSOperation 位于不同的线程上 我必须像这样进行调用 delegate performSele
  • git:具有提交限制的累积差异

    git log有一些非常有用的提交限制选项 例如 no merges and first parent 我希望能够在为一系列提交生成累积差异补丁 stat numstat 时使用这些选项 使用这些命令 git log oneline fir
  • 为什么 const 限定变量被接受为 gcc 的初始值设定项?

    在最新版本的 gcc 或 clang 中编译此代码时 std c17 pedantic errors Wall Wextra static const int y 1 static int x y 然后我没有收到编译器诊断消息 即使我相当确
  • 如何用Java计算某人的年龄?

    我想在 Java 方法中以 int 形式返回以年为单位的年龄 我现在所拥有的是以下内容 其中 getBirthDate 返回一个 Date 对象 带有出生日期 public int getAge long ageInMillis new D
  • 如何等待elasticsearch重新索引?

    我有一个ElasticSearch带索引posts设置好的了 我会时不时地向其推送新文档 I want ElasticSearch仅当所有文档均已编制索引时才回复我的查询 我怎样才能做到这一点 在 ES 2 中 您可以调用refresh A
  • SQLITE:如果共享列,则将行合并为单行

    从上一篇文章中 我在 sqlite3 中有以下视图 CREATE View AttendeeTableView AS SELECT LastName FirstName as AttendeeName CompanyName PhotoUR
  • 编译器对虚函数调用的优化

    说明为什么虚拟分派在运行时发生的最流行的例子是当无法在编译时确定将创建哪个派生类时 例如 Base b rand 2 1 new Derived1 new Derived2 或者当它取决于用户输入时 假设情况并非如此 并且可以在编译时完全确
  • 如何使用实体框架查询外键对象?

    我正在尝试了解 Entity Framework 6 但遇到了一个问题 我已经能够在测试项目中重现该问题 A Movie has a Nameand a Revenue A Revenue has a GrossIncome public
  • “clear”是Javascript中的保留字吗?

    我只是花了很长时间才弄清楚我不应该使用clear 作为Javascript中函数的名称 Hello br
  • Winform另存为

    有谁知道任何文章或网站显示如何在 win 表单中创建 另存为 对话框 我有一个按钮 用户单击并序列化一些数据 然后用户使用此 另存为 框指定他们希望将其保存的位置 你的意思是像SaveFileDialog 来自MSDN示例 稍作修改 usi
  • C++ - 从文件读取到双精度[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我对编程还比较陌生 目前正在学习 C 课程 到目前为止我还没有遇到任何重大问题 我正在制作一个程序 其中 X 数量的评委可以打出 0 0 10 0 双倍 的分数 然后删除最高和最低的