Truy nhập vị trí hiện tại của con trỏ tệp

Một phần của tài liệu Tài liệu NGÔN NGỮ LẬP TRÌNH C++ (Dùng cho sinh viên) docx (Trang 75 - 77)

Cú pháp truy nhập đến vị trí hiện thời của con trỏ tệp phụ thuộc vào kiểu biến tệp đang dùng là để đọc hay ghi.

• Nếu biến tệp là kiểu mở tệp đểđọc ifstream thì cú pháp là:

<Tên biến tệp>.tellg();

• Nếu biến tệp là kiểu mở tệp để ghi ofstream thì cú pháp là:

<Tên biến tệp>.tellp();

Chương trình 4.6a minh hoạ việc xác định vị trí hiện thời của con trỏ tệp sau một số thao tác đọc tệp trước đó. Chương trình 4.6a #include<stdlib.h> #include<iostream.h> #include<fstream.h> #include<conio.h>

const int length = 25; // Độ dài tối đa tên tệp tin void main(){

clrscr();

char fileName[length], output; cout << “Ten tep tin: ”;

/* Mở tệp tin */

ifstream fileIn(fileName, ios::in); // Khai báo và mở tệp tin if(!fileIn){ // Không mở được tệp

cout << “Khong the mo duoc tep tin ” << fileName << endl; exit(1);

}

/* Đọc dữ liệu từ tệp tin ra màn hình

* Ghi vi trí con trỏ tệp ra màn hình cứ sau 5 lần đọc kí tự */ int index = 0;

while(fileIn){

fileIn >> output; // Đọc kí tự từ tệp tin cout << output; // Ghi kí tự ra màn hình if(index % 5 == 0) // Ghi ra vị trí con trỏ tệp

cout<< endl << “Vi tri con tro tep: ” << fileIn.tellg() << endl; index ++;

}

cout << endl; // Xuống dòng trên màn hình /* Đóng tệp tin */

fileIn.close(); // Đóng tệp tin return;

}

Chương trình 4.6b minh hoạ việc xác định vị trí hiện thời của con trỏ tệp sau một số thao tác ghi vào tệp trước đó. Chương trình 4.6b #include<stdlib.h> #include<iostream.h> #include<fstream.h> #include<conio.h>

const int length = 25; // Độ dài tối đa tên tệp tin void main(){

clrscr();

char fileName[length], input; cout << “Ten tep tin: ”;

/* Mở tệp tin */

ofstream fileOut(fileName, ios::out);// Khai báo và mở tệp tin if(!fileOut){ // Không mở được tệp

cout << “Khong the tao duoc tep tin ” << fileName << endl; exit(1);

}

/* Ghi dữ liệu vào tệp tin (adsbygoogle = window.adsbygoogle || []).push({});

* Hiện ra màn hình vị trí con trỏ tệp sau khi ghi đuọc 5 kí tự*/ int index = 0;

do{

cin >> input; // Đọc kí tự từ bàn phím fileOut << input << ‘ ‘; // Ghi kí tự vào tệp tin

if(index%5 == 0) // Hiển thị vị trí con trỏ tệp cout << ”Vi tri con tro tep: ”

<< fileOut.tellp() << endl; index++;

}while((input != ‘e’)&&(fileOut));

fileOut << endl; // Xuống dòng cuối tệp tin /* Đóng tệp tin */

fileOut.close(); // Đóng tệp tin return;

}

Một phần của tài liệu Tài liệu NGÔN NGỮ LẬP TRÌNH C++ (Dùng cho sinh viên) docx (Trang 75 - 77)