Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah: 1. membuka file - mendefinisikan variabel stream - melakukan perintah open() 2. Melakukan pembacaan atau penulisan data - menggunakan operand << atau >> - menggunakan operand read() atau write() perintah read() atau write() -> informasi ukuran data yang akan dibaca atau ditulis sangat penting 3. Menutup file - menggunakan perintah close()
1. membuka file - mendefinisikan variabel stream contoh: ifstream input; // variabel stream untuk input ofstream output; // variabel stream untuk output fstream InpOut; // variabel stream utk input/output - melakukan perintah open() sintak: void ifstream::open(const char * filename, ios::openmode mode=ios::in); void ofstream::open(const char * filename, ios::openmode mode=ios::out ios::trunc); id f t ( t h * fil i d void fstream::open(const char * filename, ios::openmode mode=ios::in ios::out );
Contoh program membuka dan menutup file: #include <iostream> #include <fstream> using namespace std; // Mendeklarasikan stream untuk proses input ifstream VarBaca; VarBaca.open("COBA.TXT"); VarBaca.close();
Melakukan penulisan data ke dalam file - menggunakan operand << Contoh program menulis data ke file: Data file yang bernama #include <iostream> COBA.TXT TXT akan disimpan pada #include <fstream> folder di mana folder tempat using namespace std; program file berada. Atau informasi drive dan folder harus diinputkan, contoh: // Mendeklarasikan stream untuk proses output C://DATA//COBA.TXT TXT ofstream VarTulis; Jika file Coba.txt kita buka dengan editor notepad, akan tampak seperti: VarTulis.open("COBA.TXT"); VarTulis << C++ mudah Sekali << endl;; VarTulis << Pemrograman Mudah << endl; VarTulis.close();
Melakukan pembacaan data dari file - menggunakan operand >> Contoh program membaca data dari file: Data file yang bernama COBA.TXT harus sudah ada di folder tempat program file berada. Jika tidak maka informasi drive dan folder harus diinputkan, contoh: C://DATA//COBA.TXT VarBaca >> Teks; menghasilkan satu string/kata dibaca dari file. Jika coba.txt hasil dari program slide sebelumnya adalah sebagai input file maka hasil dilayar adalah: #include <iostream> #include <fstream> using namespace std; // Mendeklarasikan stream untuk proses output ifstream VarBaca; char Teks[80]; VarBaca.open("COBA.TXT"); VarBaca >> Teks; // proses membaca data dr file (1 string/kata) cout << Teks << ;// -> memisahkan dg teks berikutnya VarBaca >> Teks; // proses baca data dr file (1 string/kata) cout << Teks; VarBaca.close();
Melakukan pembacaan data dari file - menggunakan operand >> dan while() Contoh program membaca data dari file: Data file yang bernama COBA.TXT harus sudah ada di folder tempat program file berada. Jika tidak maka informasi drive dan folder harus diinputkan, contoh: C://DATA//COBA.TXT #include <iostream> #include <fstream> using namespace std; // Mendeklarasikan stream untuk proses output ifstream VarBaca; char Teks[80]; VarBaca.open("COBA.TXT"); VarBaca.good() : true jika berhasil membuka file/membaca data file, false jika while(varbaca.good()) // apakah berhasil membuka tidak berhasil membuka { // file atau tidak file/membaca data file. Hasil: VarBaca >> Teks; // proses membaca data dr file cout << Teks; VarBaca.close();
Melakukan penulisan data ke dalam file - menggunakan operand write() Sintaks: basic_istream::write (char * buffer, bytesize n); Contoh program menulis data ke file: VarTulis.write(Teks, 15); adalah proses menulis data ke file berupa string yang tersimpan dalam variabel Teks sebanyak 15 byte. String Kalimat Pertama terdiri dari 15 karakter. Hasil: Silahkan dicoba jika angka 15 diganti dengan angka yang berbeda! #include <iostream> #include <fstream> using namespace std; // Mendeklarasikan stream untuk proses output ofstream VarTulis; char Teks[80]; VarTulis.open("COBA.TXT"); strcpy(teks, Kalimat Pertama ); VarTulis.write(Teks, 15); // proses menulis data ke file cout << Teks; strcpy(teks, Kalimat Kedua ); VarTulis.write(Teks, 13); // proses tulis data ke file cout << Teks; VarTulis.close();
Melakukan pembacaan data dari file - menggunakan operand read() Sintaks: basic_istream::read (char * buffer, bytesize n); #include <iostream> #include <fstream> using namespace std; Contoh program membaca data ke file: Jika coba.txt hasil dari program slide sebelumnya adalah sebagai input file maka hasil dilayar adalah: Silahkan dicoba jika angka 15 atau 13 diganti dengan angka yang berbeda! // Mendeklarasikan stream untuk proses output ifstream VarBaca; char Teks[80]; VarBaca.open("COBA.TXT"); strcpy(teks, " "); // mengosongkan variabel Teks VarBaca.read(Teks, 15); // proses membaca data dr file cout << Teks << endl; strcpy(teks, " "); // mengosongkan variabel Teks VarBaca.read(Teks, 13); // proses baca data dr file cout << Teks; VarBaca.close();
Melakukan penulisan data berupa numerik - menggunakan operand write() Contoh program menulis data ke file: Hasil penyimpanan data numerik ke file adalah berupa data biner. Jika file Coba.dat dibuka menggunakan editor notepad, maka akan tampak seperti: #include <iostream> #include <fstream> using namespace std; // Mendeklarasikan stream untuk proses output ofstream VarTulis; float angka = 23.3; VarTulis.open("COBA.dat"); VarTulis.write((char *) &angka, sizeof(float)); VarTulis.close();
Melakukan pembacaan data numerik - menggunakan operand read() Contoh program membaca data dari file: #include <iostream> #include <fstream> using namespace std; Jika file coba.dat hasil dari program slide sebelumnya adalah sebagai input file maka hasil dilayar adalah: // Mendeklarasikan stream untuk proses output ifstream VarBaca; float angka; Silahkan dicoba menyimpan data berupa angka/numerik lebih dari satu dengan jenis tipe data yang berbeda (mis. Int, long int, double)! Dan anda pikirkan bagaimana cara membaca data yang telah tersimpan tersebut.!! VarBaca.open("COBA.dat"); VarBaca.read((char read((char *) &angka, sizeof(float)); cout << angka << endl; VarBaca.close();
Contoh program menulis dan membaca data ke/dari file: Contoh penggunaan property getline dan eof dlm pembacaan data istream& getline( char* pch, int ncount, char delim = '\n' ); #include <iostream> #include <fstream> using namespace std; void main(void) { // Mendeklarasikan stream untuk proses input ifstream VarBaca; // Mendeklarasikan stream untuk proses output ofstream VarTulis; char Teks[80]; Hasil penyimpan di file: VarTulis.open("COBI.TXT"); VarTulis << " C++ mudah Sekali " << endl; //menulis data ke file VarTulis << " Pemrograman Mudah " << endl; //menulis data ke file VarTulis.close();
Lanjutan Baca Tulis File VarBaca.open("COBI.TXT"); Hasil pembacaan dari file: //membaca seluruh data dari file, baris per baris while (!VarBaca.eof()) { VarBaca.getline(Teks,80, '\n'); //membaca data dari file cout t<<t Teks << endl; VarBaca.close(); close() delimiter \n diganti dengan spacebar, hasil: VarBaca.eof() memberikan harga bukan nol jika akhir suatu file telah ditemukan. VarBaca.getline(Teks,80, '\n'); membaca data karakter yang tersimpan pada file sampai tanda delimiter ditemukan, delimited \n berarti membaca karakter sampai tanda pindah baris ditemukan. Coba tanda delimiter \n anda ganti dengan tanda delimiter spcebar. Perhatikan hasil pada layar.
Contoh program menulis dan membaca data ke/dari file dg fstream: Contoh penggunaan property seekg dlm pembacaan data #include <iostream> #include <fstream> using namespace std; void main(void) { // Mendeklarasikan stream untuk proses input ifstream VarBaca; // Mendeklarasikan stream untuk proses output ofstream VarTulis; char Teks[80]; VarTulis.open("COBE.TXT"); VarTulis << "C++ sangat Sekali" << endl; //menulis data ke file VarTulis << "Pemrograman Mudah" << endl; //menulis data ke file VarTulis.close();
Lanjutan Baca Tulis File VarBaca.open("COBI.TXT"); VarBaca.seekg(17, ios::beg); // set file pointer ke posisi // 17byte dr awal file Strcpy(Teks, ); VarBaca.read(Teks, 12); // proses baca data dr file cout << Teks << ; VarBaca.seekg(0, ios::beg); // set file pointer ke posisi // 0byte dr awal file Strcpy(Teks, ); VarBaca.read(Teks, 3); // proses baca data dr file cout << Teks << ; VarBaca.seekg(28, ios::cur); // set file pointer ke posisi // 28byte dr posisi saat itu Strcpy(Teks, ); VarBaca.read(Teks, 5); // proses baca data dr file cout << Teks << ;
Lanjutan Baca Tulis File VarBaca.seekg(10, ios::beg); // set file pointer ke posisi // 10byte dr posisi i awal Strcpy(Teks, ); VarBaca.read(Teks, 6); // proses baca data dr file cout << Teks << ; Hasil: VarBaca.close();
Membaca atau menulis data dari/ke sebuah file dapat dilakukan juga dengan perintah fopen() Untuk dapat membaca atau menulis data dari/ke sebuah file maka langkah yang perlu dilakukan adalah: 1. membuka file - mendefinisikan variabel stream - melakukan perintah fopen() 2. Melakukan pembacaan atau penulisan data - menggunakan operand fscanf() atau fprintf() - menggunakan operand fread() atau fwrite() perintah fread() atau fwrite() -> informasi ukuran data yang akan dibaca atau ditulis sangat penting 3 M t fil 3. Menutup file - menggunakan perintah fclose() atau _fcloseall();
Contoh program membuka dan menutup file: #include <iostream.h> #include <stdio.h> #include <stdlib.h> // Mendeklarasikan stream untuk proses input FILE *VarBaca; VarBaca = fopen("coba.txt", "r"); ") if(varbaca==null){ cout << " Error buka file : " << "Coba.txt" fclose(varbaca); << endl; exit(-1); // keluar dari program
Melakukan pembacaan atau penulisan data - menggunakan operand fprintf() atau fscanf() Contoh program menulis data ke file: #include <iostream.h> #include <stdio.h> #include <stdlib.h> // Mendeklarasikan stream untuk proses input FILE *VarTulis; VarTulis = fopen("coba.txt", "w"); if(vartulis==null){ cout << " Error buka file : " << "Coba.txt << endl; exit(-1); fprintf(vartulis,"c++ mudah Sekali\n"); fprintf(vartulis,"pemrograman Mudah"); fclose(vartulis);
Melakukan pembacaan atau penulisan data - menggunakan operand fprintf() atau fscanf() Contoh program membaca data ke file: #include <iostream.h> #include <stdio.h> #include <stdlib.h> // Mendeklarasikan stream untuk proses input FILE *VarBaca; char Teks[80]; VarBaca = fopen("coba COBA.TXT TXT", "r"); r); if(varbaca==null){ cout << " Error buka file : " << "Coba.txt << endl; exit(-1); while(fscanf(varbaca,"%s",teks)!=eof) { cout << Teks << ; fclose(varbaca);
Melakukan pembacaan atau penulisan data - menggunakan operand fprintf() atau fscanf() dan fgets() #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <string.h> // Mendeklarasikan stream untuk proses input FILE *VarTulis, *VarBaca; char Teks[80]; VarTulis = fopen("coba.txt", "w"); ") if(vartulis==null){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1);
Lanjutan Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fprintf() atau fscanf() dan fgets() strcpy(teks, "Kalimat Pertama"); fprintf(vartulis,"%20s", Teks); // proses menulis data ke file cout << Teks; strcpy(teks, "Kalimat Kedua"); fprintf(vartulis,"%20s", Teks); // proses menulis data ke file cout << Teks; fclose(vartulis);
Lanjutan Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fprintf() atau fscanf() dan fgets() VarBaca = fopen("coba.txt", "r"); if(varbaca==null){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1); while( fgets(teks, 21, VarBaca)!= NULL ) { cout << Teks << endl; fclose(varbaca);
Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() Sintaks: fwrite (char * buffer, size t, count n, iobuf *); Contoh program menulis data ke file: #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <string.h> // Mendeklarasikan stream untuk proses input FILE *VarTulis; char Teks[80]; VarTulis = fopen("coba.txt", "w"); if(vartulis==null){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1);
Lanjutan. Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() Sintaks: fwrite (char * buffer, size t, count n, iobuf *); Contoh program menulis data ke file: strcpy(teks, "Kalimat Pertama"); fwrite(teks,sizeof(char),20, VarTulis); // proses menulis data ke file cout << Teks; strcpy(teks, "Kalimat Kedua"); fwrite(teks,sizeof(char),20, VarTulis); // proses menulis data ke file cout << Teks; fclose(vartulis);
Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() Sintaks: fread (char * buffer, size t, count n, iobuf *); Contoh program Membaca data ke file: #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <string.h> // Mendeklarasikan stream untuk proses input FILE *VarBaca; char Teks[80]; VarBaca = fopen("coba.txt", "r"); if(varbaca==null){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1);
Lanjutan. Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() Sintaks: fread (char * buffer, size t, count n, iobuf *); Contoh program Membaca data ke file: fread(teks,sizeof(char),20, sizeof(char) VarBaca); // proses menulis data ke file cout << Teks << endl; fread(teks,sizeof(char),20, VarBaca); // proses menulis data ke file cout << Teks << endl; fclose(varbaca);
Melakukan penulisan data berupa numerik - menggunakan operand fwrite() Contoh program Menulis data ke file: #include <iostream.h> #include <stdio.h> #include <stdlib.h> // Mendeklarasikan stream untuk proses input FILE *VarTulis; float angka = 23.3; VarTulis = fopen("coba.dat", "w"); if(vartulis==null){ cout << " Error buka file : " << "Coba.txt << endl; exit(-1); fwrite(&angka,sizeof(float),1, VarTulis); // proses menulis data ke file cout << angka << endl; fclose(vartulis);
Melakukan penulisan data berupa numerik - menggunakan operand fwrite() Contoh program Menulis data ke file: #include <iostream.h> #include <stdio.h> #include <stdlib.h> // Mendeklarasikan stream untuk proses input FILE *VarBaca; float angka; VarBaca = fopen("coba.dat", "r"); if(varbaca==null){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1); fread(&angka,sizeof(float),1, VarBaca); // proses menulis data ke file cout << angka << endl; fclose(varbaca);
Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() dan fungsi fseek() #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <string.h> // Mendeklarasikan stream untuk proses input FILE *VarTulis VarTulis, *VarBaca; char Teks[80]; VarTulis = fopen("coba COBA.TXT TXT", "w"); w); if(vartulis==null){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1);
Lanjutan. Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() dan fungsi fseek() strcpy(teks, "Kalimat Pertama"); fprintf(vartulis,"%20s", Teks); // proses menulis data ke file cout << Teks; strcpy(teks, "Kalimat Kedua"); fprintf(vartulis,"%20s", Teks); // proses menulis data ke file cout << Teks; fclose(vartulis);
Lanjutan. Baca Tulis File Melakukan pembacaan atau penulisan data - menggunakan operand fread() atau fwrite() dan fungsi fseek() VarBaca = fopen("coba.txt", "r"); if(varbaca==null){ cout << " Error buka file : " << "Coba.txt" << endl; exit(-1); while( fgets(teks, 21, VarBaca)!= NULL ) { cout << Teks << endl; fseek(varbaca, -40, SEEK_END); fgets(teks, 21, VarBaca); fclose(varbaca);