C. Con tr tp ệ
2. Truy nh pv trí hi nt ca con tr tp ệ
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();ế ệ 3.Ví Dụ
Chương trình D.a 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 đó:
• #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: ”;
cin >> setw(length) >> fileName; // Nhập tên tệp 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 0;
Chương trình D.b 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 đó.
• #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: ”;
cin >> setw(length) >> fileName; // Nhập tên tệp 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;