Cnhernehs [c++]

  • Автор темы -
  • Дата начала

Гость
#1
Почему новый файл пуст? Что у меня не так?
Вот код, прога без ошибок, всё компилится
C++:
#include<iomanip.h>		 
#include<fstream.h>
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>

ifstream Fin;
ofstream Fout;
const int m=6;
struct Sportsmen
{
char Fam[11];
char Dolgn[14];
float Ball[m];
};
void input (Sportsmen &T)
{
Fin>>T.Fam>>T.Dolgn;
for (int j=0; j<m; j++)
Fin>>T.Ball[j];
}
void output (Sportsmen T)
{
Fout<<setw(10)<<T.Fam<<" "<<setw(15)<<T.Dolgn;
for (int j=0; j<m; j++)
Fout<<setw(4)<<T.Ball[j];
Fout<<endl;
}
float SrBall (Sportsmen T)
{
float Sr=0;
for (int j=0; j<m; j++)
Sr+=T.Ball[j];
return Sr/m;
}

void main ()
{
int F=1;
Sportsmen S;
Fin.open("D:\STRUCT\DATASPORTS.cpp");
if (Fin.fail())
{
cout<< "\n input file is not open \n";
exit(1);
}
Fout.open("D:\STRUCT\BALL.cpp");
if (Fout.fail())
{
cout <<"\n created file is not open\n";
exit(1);
}
float  max=0;
input (S);
while (!Fin.eof())
{
if (SrBall(S)>max)
max=SrBall(S);
input(S);
}
Fin.close();
Fin.open("D:\STRUCT\DATASPORTS.cpp");
input(S);
while (!Fin.eof())
{
if (SrBall(S)==max)
output(S);
input(S);
}
Fout.close();
if (F==1)
cout<<"file empty";
else cout<<"okay";
getch();
}
Вот исходный файл DATASPORTS
Код:
Ololoev swimer 20 15 18 19.5 17 20
Troler troling 20 20 20 20 20 20
Djigurda sport_dancer 15 14 10 5 7 3.5
Mentov footballer 5.5 4 2 1 1 1
Ravshan skier 3 8 6 12 16 14
Djamshut bobsledder 3 3 1 2 2.5 1.5
Putin karatist 19 20 19 13 9 8
Mevdedev judoist 18.5 17.5 19.5 11 4 20
Makarov athlete 13 15 11.5 14.5 9 18
Syvorov biathlete 7 0 3 9 8 2
И условие задачи: Дан типизированный файл структур типа Sportsmen, содержащий следующие поля: Fam-фамилия, Dolgn-занимаемая должность, Ball-массив баллов, поставленных m судьями. Вывести в новый типизированный файл инфу о спортсменах с максимальным средним баллом
 

Whatka

Well-Known Member
09.10.2011
428
4
#2
у меня выводит

почему расширение фалов .cpp???
вот я чутка изменил чтобы у меня компилилось
файлы In.txt и Out.txt должны лежать там же где и файл твоей программы(TvoiFile.cpp)
C++:
#include<iomanip>		 
#include<fstream>
#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
ifstream Fin;
ofstream Fout;
const int m=6;
struct Sportsmen
{
char Fam[11];
char Dolgn[14];
float Ball[m];
};
void input (Sportsmen &T)
{
Fin>>T.Fam>>T.Dolgn;
for (int j=0; j<m; j++)
Fin>>T.Ball[j];
}
void output (Sportsmen T)
{
Fout<<setw(10)<<T.Fam<<" "<<setw(15)<<T.Dolgn;
for (int j=0; j<m; j++)
Fout<<setw(4)<<T.Ball[j];
Fout<<endl;
}
float SrBall (Sportsmen T)
{
float Sr=0;
for (int j=0; j<m; j++)
Sr+=T.Ball[j];
return Sr/m;
}
void main ()
{
int F=1;
Sportsmen S;
Fin.open("In.txt");
if (Fin.fail())
{
cout<< "\n input file is not open \n";
exit(1);
}
Fout.open("Out.txt");
if (Fout.fail())
{
cout <<"\n created file is not open\n";
exit(1);
}
float  max=0;
input (S);
while (!Fin.eof())
{
if (SrBall(S)>max)
max=SrBall(S);
input(S);
}
Fin.close();
Fin.open("In.txt");
input(S);
while (!Fin.eof())
{
if (SrBall(S)==max)
output(S);
input(S);
}
Fout.close();
if (F==1)
cout<<"file empty";
else cout<<"okay";
getch();
}
 

Гость
#3
Я пробовал с txt. Всё так же пусто
А какая разница если файл будет в cpp или txt