c_cpp 从文件中读取并做一些事情

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 从文件中读取并做一些事情相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <fstream>

using namespace std;

struct Gas
{
    int counterID;
    double quantity;
};

istream& operator>>(istream& in, Gas& g)
{
    if (in)
    {
        int id;
        double q;

        in >> id >> q;

        if (in)
        {
            g.counterID = id;
            g.quantity = q;
        }
    }

    return in;
}

// Ако трябва да четем от двоичен файл
//
// bool load (ifstream& in, Gas& g)
// {
//      if (! in) return false;
//      in.read ((char*) &g, sizeof(g));
//      return in.good();
// }

double totalForCounter (int counterID, double ppl, ifstream& in)
{
    if (!in) return 0;

    Gas gas;
    double total;

    // while (load(in, gas))
    while (in >> gas)
    {
        if (gas.counterID == counterID)
        {
            total += gas.quantity * ppl;
        }
    }

    return total;
}

double average (int counterID, ifstream& in)
{
    double avg = 0;
    if (!in) return avg;

    Gas gas;
    size_t count = 0;

    in.clear();
    in.seekg(0, ios::beg);
    if(!in) return 0;

    while (in >> gas)
    {
        if (gas.counterID == counterID)
        {
            avg += gas.quantity;
            count++;
        }
    }

    return (avg/count);
}

void writeAvg()
{
    ofstream output("file.txt", ios::ate | ios::binary);
    if (!output) return;

    size_t maxCounterID = getMaxCounterID(in);

    for (size_t i = 1; i < maxCounterID; ++i)
    {
        output.seekp((i-1)*sizeof(Gas), ios::beg);
        double a = average(i, in);
        output.write((const char*)&a, sizeof(a));
    }
}

以上是关于c_cpp 从文件中读取并做一些事情的主要内容,如果未能解决你的问题,请参考以下文章

我在 s3 中有 .dat 文件。我需要通过 spark 读取文件并做一些过滤器并再次加载到 S3

检测麦克风中的打击并做一些事情

c_cpp 从文件中读取

php 获得WP后分类和循环并做一些事情

Linux脚本练习之script035-读取 `a.c` 文件中的内容并做加 1 运算。

如何强制 GetQueuedCompletionStatus() 立即返回?