while(bacaFile)
{
char bufferBaris[100];
bacaFile.getline(bufferBaris,sizeof(bufferBaris));
strcat(bufferBaris,"\n");
strcat(bufferFile,bufferBaris);
}
//menutup file
bacaFile.close();
}
Operasi Output File Teks
#include <iostream.h>
#include <fstream.h>
void main()
{
//deklarasi objek output file
ofstream tulisFile;
tulisFile.open("e:\\filesaya.tes");
//menutup file
tulisFile.close();
struct Mahasiswa
{
int No;
char NIM[15];
char Nama[20];
float Tugas;
float UTS;
float UAS;
char Nilai;
};
void Input(Mahasiswa* mhs, int jumData)
{
for(int i=0; i<jumData; i++)
{
mhs[i].No=i+1;
cout<<"No : "<<mhs[i].No<<endl;
cout<<"Nrp : ";
cin>>mhs[i].Nrp;
cout<<"Nama : ";
cin>>mhs[i].Nama;
cout<<"Tugas : ";
cin>>mhs[i].Tugas;
cout<<"UTS : ";
cin>>mhs[i].UTS;
cout<<"UAS : ";
cin>>mhs[i].UAS;
mhs[i].Nilai='\0';
cout<<endl;
}
}
void ProsesData(Mahasiswa* mhs,int jumData)
{
float nilai;
for(int i=0; i<jumData; i++)
{
nilai=(mhs[i].Tugas*0.3)+(mhs[i].UTS*0.3)+(mhs[i].UAS*0.4);
if(nilai>85)
mhs[i].Nilai='\A';
else if(nilai<85 && nilai>=75)
mhs[i].Nilai='\B';
else if(nilai<75 && nilai >=60)
mhs[i].Nilai='\C';
else if(nilai<60 && nilai >=50)
mhs[i].Nilai='\D';
else if(nilai<50)
mhs[i].Nilai='\E';
}
}
void Cetak(Mahasiswa* mhs, int jumData)
{
cout<<"-----------------------------------------------------------------------------\n";
cout<<"No Nrp Nama Tugas UTS UAS Nilai\n";
cout<<"-----------------------------------------------------------------------------\n";
for(int i=0; i<jumData; i++)
{
cout.setf(ios::right);
cout<<setw(3)<<mhs[i].No<<" ";
cout.setf(ios::left);
cout<<setw(8)<<mhs[i].Nrp<<" ";
cout<<setw(20)<<mhs[i].Nama<<" ";
cout.setf(ios::right);
cout<<setw(4)<<mhs[i].Tugas<<" ";
cout<<setw(4)<<mhs[i].UTS<<" ";
cout<<setw(4)<<mhs[i].UAS<<" ";
cout<<setw(1)<<mhs[i].Nilai<<endl;
}
cout<<"-------------------------------------------------------------------------------\n";
}
int TulisFile(const char* fileName,Mahasiswa* mhs, int jumData)
{
ofstream tulisFile(fileName, ios::binary);
if(!tulisFile)
{
cout<<"baca File gagal ";
return 0;
}
for(int i=0; i<jumData; i++)
{
tulisFile<<mhs[i].No<<" "
<<mhs[i].Nrp<<" "
<<mhs[i].Nama<<" "
<<mhs[i].Tugas<<" "
<<mhs[i].UTS<<" "
<<mhs[i].UAS<<" "
<<mhs[i].Nilai<<endl;
}
tulisFile.close();
return 1;
}
int BacaFile(const char* fileName, Mahasiswa* mhs, int& jumData)
{
ifstream bacaFile(fileName,ios::binary);
if(!bacaFile)
{
cout<<"baca File gagal ";
return 0;
}
int i=0;
while(bacaFile)
{
bacaFile>>mhs[i].No
>>mhs[i].Nrp
>>mhs[i].Nama
>>mhs[i].Tugas
>>mhs[i].UTS
>>mhs[i].UAS
>>mhs[i].Nilai;
i++;
}
jumData=i-1;
bacaFile.close();
return 1;
}
void main()
{
int jumData;
char c;
char fileName[12];
Mahasiswa* mhs=new Mahasiswa[100];
cout<<"Program mengisi Nilai Mahasiswa\n";
cout<<"-------------------------------\n\n";
cout<<"Input data dari keyboard tekan huruf I\n";
cout<<"Baca data dari file tekan huruf B\n\n";
cout<<"Pilih I atau B : ";
cin>>c;
if(c=='I' || c=='i')
{
cout<<"\nMasukkan jumlah data : ";
cin>>jumData;
Input(mhs,jumData);
ProsesData(mhs,jumData);
Cetak(mhs,jumData);
cout<<"Save to file [y/n] : ";
cin>>c;
if(c=='Y' || c=='y') else if(c=='B' || c=='b')
{ {
cout<<"Masukkan nama file : "; cout<<"\nMasukkan nama file : ";
cin>>fileName; cin>>fileName;
if(!TulisFile(fileName,mhs,jumData)) if(!BacaFile(fileName,mhs,jumData))
return; return;
} Cetak(mhs,jumData);
else }
{ else
cout<<"Keluar dari program "; {
return; cout<<"Keluar dari program ";
} return;
} }
}