weixin_46904547 2021-10-20 12:23 采纳率: 0%
浏览 15

关于c++文件读取(正确输入到变量中)

img


data.txt
4
A 0 1
B 1 100
C 2 1
D 3 101

如何读取才能将上面的数据正确输入到jobs[i].name,jobs[i].starttime,jobs[i].needtime里面


#include<iostream>
#include <fstream>
#include <algorithm>
using namespace std;

typedef struct Job {
    char name[10];      //作业的名字
    int arrivetime;      //作业到达系统时间
    int needtime;       //作业服务时间
    int starttime;      //作业开始执行时间
    int finishtime;        //作业完成时间
    int staytime;        //作业周转时间
    double dqzztime;    //带权周转时间
}Job;
Job jobs[50];

void fcfs(struct Job jobs[50], int n) {
    int start = 0;
    int min = 255;
    int k;
    struct Job tempt;
    for (int j = 0;j < n-1;j++) {
        min = jobs[j].needtime;
        k = j;
        for (int i = j+1;i < n;i++)
        {
            if (jobs[i].needtime < min) {
                min = jobs[i].needtime;
                k = i;
            }
        }
        if (min < jobs[j].needtime) {
            tempt = jobs[j];
            jobs[j] = jobs[k];
            jobs[k] = tempt;
        }
    }
    for (int i = 0;i < n;i++)
    {
        if (i != 0) {
            if (jobs[i].arrivetime >= start) {
                start = jobs[i].arrivetime;
                jobs[i].starttime = start;
                jobs[i].finishtime = jobs[i].starttime + jobs[i].needtime;
                jobs[i].staytime = jobs[i].finishtime - jobs[i].arrivetime;
                
                start += jobs[i].needtime;
            }
            else {
                jobs[i].starttime = start;
                jobs[i].finishtime = jobs[i].starttime + jobs[i].needtime;
                jobs[i].staytime = jobs[i].finishtime - jobs[i].arrivetime;
                
                start += jobs[i].needtime;
            }
        }
        else{
            start += jobs[i].arrivetime;
            jobs[i].starttime = start;
            jobs[i].finishtime = jobs[i].starttime + jobs[i].needtime;
            jobs[i].staytime = jobs[i].finishtime - jobs[i].arrivetime;
            
            start += jobs[i].needtime;
        }
        jobs[i].dqzztime = jobs[i].staytime*1.0 / jobs[i].needtime;
    }
}
void sjf(struct Job jobs[50], int n) {}
void result(struct Job jobs[50], int n) {}

int main()
{
    int n, i; //n个作业
    ifstream infile("data.txt", ios::in);
    if (!infile.is_open()) {
        printf("open error!\n");
        return -1;
    }
    infile >> n;
    /*cout<<"输入作业个数:";
    cin >> n;
    cout<<"输入每个作业的作业名,到达时间,服务时间:"<<endl;*/
    for (i = 0;i < n;i++)
    {
        infile >> jobs[i].name;
        infile >> jobs[i].starttime;
        infile>> jobs[i].needtime;
    }
    cout << endl;
    cout<<"作业名\t到达系统时间\t运行时间\n";
    for (i = 0;i < n;i++)
    {
        cout << jobs[i].name << "\t\t" << jobs[i].arrivetime << "\t\t" << jobs[i].needtime << endl;
    }

}
  • 写回答

2条回答 默认 最新

  • -Undefined_ 2021-10-20 12:32
    关注

    你已经正确读取了,但是输出的时候写成 jobs[i].arrivetime了


    觉得有用的话采纳一下哈

    评论

报告相同问题?

问题事件

  • 创建了问题 10月20日

悬赏问题

  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求
  • ¥20 antv g6 折线边如何变为钝角
  • ¥30 如何在Matlab或Python中 设置饼图的高度
  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析
  • ¥100 我想找人帮我写Python 的股票分析代码,有意请加mathtao
  • ¥20 Vite 打包的 Vue3 组件库,图标无法显示
  • ¥15 php 同步电商平台多个店铺增量订单和订单状态