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 Ngon ngu lap trinh c (Trang 75 - 77)

4.3 TRUY NHẬP TỆP TRỰC TIẾP

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

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;

}

Một phần của tài liệu Ngon ngu lap trinh c (Trang 75 - 77)

Tải bản đầy đủ (PDF)

(186 trang)