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 Bài giảng Ngôn ngữ lập trình C++: Phần 1 - TS. Nguyễn Duy Phương (Trang 90 - 93)

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: ”;

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(); return;

// Đóng tệp tin

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: ”;

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); (adsbygoogle = window.adsbygoogle || []).push({});

}

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

}

Một phần của tài liệu Bài giảng Ngôn ngữ lập trình C++: Phần 1 - TS. Nguyễn Duy Phương (Trang 90 - 93)