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;
}
}