Top.Mail.Ru
Ответы

Ребят проблема С++ Файлами

Ребя, помогите пожалуйста, у меня задание, есть текстовый файл что на картинке, нужно эти строки из текста обработать и вывести день у которого наименьшая продолжительность занятий, не получается этого сделать.

#include <iostream>

#include <string.h>

#include <stdio.h>

#include <fstream>

using namespace std;

struct Days {

char DayName[50];

unsigned int kl, kp, klab, h;

};

int main() {

ifstream fin("GG.txt");

ofstream fout("BB.txt");

if (! http://fin.is/ _open()) {

cout << "Файл не найден" << endl;

} else {

cout << "Файл открыт" << endl;

}

Days base[50];

int n = 0;

while (fin.getline(base[n].DayName, 50, ',')) {

fin >> base[n].kl >> base[n].kp >> base[n].klab >> base[n].h;

n++;

}

int min = base[1].h;

n = n - 1;

for(int i = 0; i < n; i++) {

if(min > base[i].h) {

min = base[i].h;

}

}

char S[50];

for(int i = 0; i < n; i++) {

if(min == base[i].h) {

for(int i = 0; i < strlen(DayName); i++){

S[i] = base[i].DayName;

}

}

}

cout << " День с наименшим " << min << endl;

fin.close();

fout.close();

return 0;

}

По дате
По рейтингу
Аватар пользователя
Новичок

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
int main()
{
char a='a',line[256]={0},number[6]={0},minday[15]={0},day[15]={0};
int pos=0,hh=0,mm=0,min=1000, minhh=0, minmm=0;
FILE *f;
f=fopen("GG.txt","wt");
if(!f) exit(1);
fprintf(f,"%s", "Monday 3 3hrs.60min and 50minbreak\n");
fprintf(f,"%s", "Tuesday 2 4hrs.40min and 30minbreak\n");
fprintf(f,"%s", "Wednesday 3 3hrs.60min and 50minbreak\n");
fprintf(f,"%s", "Thursday 1 1hr.20min and 10minbreak\n");
fprintf(f,"%s", "Friday 4 4hrs.80min and 80minbreak\n");
fprintf(f,"%s", "Saturday 1 1hr.20min and 10minbreak\n");
fclose(f);
printf("File saved\n");
f=fopen("GG.txt","rt");
if(!f) exit(1);
printf("\nFrom file GG.txt:\n");
while(fscanf(f,"%c",&a)!=EOF)
{//while
if((a!='\n'&&isalnum(a))||
(a!='\n'&&isblank(a))||
(a!='\n'&&ispunct(a)))
line[pos++] = a;
else
{
line[pos]='\n';
printf("%s",line);
pos=0;
char *word=strtok(line," ");
memset(day,'\0',sizeof(day));
strcpy(day,word);
word=strtok(NULL," ");
word=strtok(NULL," ");
word=strtok(word,"hr");
strcpy(number,word);

for(int i = 0; i < strlen(number); i++)
if(isalpha(number[i]))
number[i]='\0';
hh=atoi(number);
word=strtok(NULL,".");
word=strtok(NULL,"min");
memset(number,'\0',sizeof(number));
strcpy(number,word);
for(int i = 0; i < strlen(number); i++)
if(isalpha(number[i]))
number[i]='\0';
mm=atoi(number);

if( min > (hh*60+mm) )
{//if
minhh=hh;
minmm=mm;
min=hh*60+mm;
memset(minday,'\0',sizeof(minday));
strcpy(minday,day);
}//if
memset(line,'\0',sizeof(line));
}

}//while
fclose(f);
f=fopen("BB.txt","wt");
if(!f) exit(1);
fprintf(f,"Minimal time of study: %s %dhr(s) %dmin(s)",
minday,minhh,minmm);
fclose(f);
f=fopen("BB.txt","rt");
char str[256]={0};
fgets(str,sizeof(str),f);
printf("\nFrom file BB.txt:\n%s",str);
fclose(f);
system("pause");
return 0;
}