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
* 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;
}