Bài giảng Giới thiệu lập trình - Chương 8: Luồng dữ liệu và tệp - Lê Nguyên Khôi

pdf 19 trang hoanguyen 4430
Bạn đang xem tài liệu "Bài giảng Giới thiệu lập trình - Chương 8: Luồng dữ liệu và tệp - Lê Nguyên Khôi", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_gioi_thieu_lap_trinh_chuong_8_luong_du_lieu_va_tep.pdf

Nội dung text: Bài giảng Giới thiệu lập trình - Chương 8: Luồng dữ liệu và tệp - Lê Nguyên Khôi

  1. ư
  2.  Lu ng Nh p/Xu t  Tp Nh p/Xu t  Ký T Nh p/Xu t  Công c cho Lu ng Nh p/Xu t  S d ng tên t p cho d li u vào  nh d ng d li u ra, cài t c  Tp truy c p ng u nhiên Gi i Thi u L p Trình 1
  3.  Lu ng d li u (stream)  i t ư ng c bi t  Dùng nh p/xu t d li u c a ch ươ ng trình  Tp Nh p/Xu t dùng:  Nh p d li u t t p vào ch ươ ng trình  Xu t d li u t ch ươ ng trình ra t p Gi i Thi u L p Trình 2
  4.  Chu i các ký t  Lu ng vào (input stream)  Nh p vào ch ươ ng trình  T bàn phím  T t p  Lu ng ra (output stream)  Xu t ra kh i ch ươ ng trình  Ra màn hình  Ra tp Gi i Thi u L p Trình 3
  5.  Chúng ta ã s d ng lu ng  cin  i t ư ng lu ng nh p k t n i v i bàn phím  cout  i t ư ng lu ng xu t k t n i v i màn hình  nh ngh a các lu ng khác  nh p/xu t cho t p  S d ng tươ ng t cin , cout Gi i Thi u L p Trình 4
  6.  c t t p  Khi nh p d li u cho ch ươ ng trình  Ghi vào t p  Khi ch ươ ng trình xu t d li u  Bt u t u n cu i tp  Có nhi u cách th c ( c/ghi) khác  Truy c p t p v n b n ơ n gi n Gi i Thi u L p Trình 5
  7. ươ  Phi kt n i t p v i i t ư ng lu ng  Vi nh p d li u:  Tp là i t ư ng ifstream  Vi xu t d li u:  Tp là i t ư ng ofstream  Các l p ifstream và ofstream  ư c nh ngh a trong th ư vi n fstream  Có trong không gian tên std Gi i Thi u L p Trình 6
  8. ư  Cho phép nh p/xu t d li u t /ra t p: #include using namespace std; ho c #include using std::ifstream; using std::ofstream; Gi i Thi u L p Trình 7
  9. ao  Khai báo lung gi ng nh ư b t c bi n nào: ifstream inStream; ofstream outStream;  Sau ó k t n i v i tp: inStream.open("infile.txt");  Th c hi n thao tác m t p  S d ng hàm thành viên open  Có th ch nh ư ng d n hoàn ch nh Gi i Thi u L p Trình 8
  10.  Sau khi khai báo s d ng nh ư cin ifstream inStream; inStream.open("infile.txt"); int soThuNhat, soThuHai; inStream >> soThuNhat; inStream >> soThuHai;  Tươ ng t lu ng xu t (gi ng cout ) ofstream outStream; outStream.open("outfile.txt"); outStream << "soThuNhat = " << soThuNhat; outStream << " soThuHai = " << soThuHai;  Ghi d li u ra t p Gi i Thi u L p Trình 9
  11.  i v i ch ươ ng trình, t p có 2 tên:  Tên t p ngo i vi  Tên t p trên cng, ôi khi ư c g i tên t p th c  S dng m t l n trong ch ươ ng trình (khi m t p)  Ví d : infile.txt , outfile.txt  Tên lu ng  Tên t p trong ch ươ ng trình  S dng tên này cho t t c các ho t ng c/ghi  Ví d : inStream , outStream Gi i Thi u L p Trình 10
  12.  Tp nên ư c óng l i  Khi ch ươ ng trình hoàn t t c/ghi d li u  óng k t n i gi a lu ng & t p  Ví d: inStream.close(); outStream.close();  Không có tham s  Tp t ng óng khi k t thúc ch ươ ng trình Gi i Thi u L p Trình 11
  13. ifstream inStream; ofstream outStream; inStream.open("infile.txt"); outStream.open("outfile.txt"); int so1, so2, so3; inStream >> so1 >> so2 >> so3; outStream << "Tong 3 so dau la " << (so1 + so2 + so3) << endl; inStream.close(); outStream.close(); Gi i Thi u L p Trình 12
  14. o  Th ư ng m t t p ư c m là m t t p r ng  Nu t p t n ti, toàn b d li u b xóa  M t p chèn vào cu i t p (s d ng c ): ofstream outStream; outStream.open("outfile.txt", ios::app );  Nu t p không t n ti, to tp m i  Nu t p t n ti, chèn vào cu i t p  Tham s th 2 là h ng trong l p ios  Trong th ư vi n iostream  Không gian tên std Gi i Thi u L p Trình 13
  15. a  Có th g p l i khi m t p  Khi t p không t n t i ( c d li u)  Không có quy n ghi vào t p  S d ng hàm thành viên fail()  Gi hàm thành viên fail() ki m tra m lu ng thành công không inStream.open("infile.txt"); if (inStream.fail()) { cout << "Loi mo file.\n"; exit(1); } Gi i Thi u L p Trình 14
  16. a  Dùng vòng l p x lý vi tp n khi h t t p  S dng hàm thành viên eof() inStream.get(next); while (!inStream.eof()) { cout << next; inStream.get(next); }  c t ng ký t cho n khi h t d li u trong t p  Hàm thành viên eof() tr v ki u bool Gi i Thi u L p Trình 15
  17. ươ  Tham s cho open() là ki u xâu ký t  Tên c th ho c bi n char tenTep[16]; cout > tenTep; ifstream inStream; inStream.open(tenTep);  Linh ho t h ơn i v i tên t p là bi n ư c nh p t bàn phím khi ch y ch ươ ng trình Gi i Thi u L p Trình 16
  18.  Xu t d li u d ư i d ng 2 s th p phân: cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2);  In ra màn hình (12.50)  Hàm thành viên precision(x)  Ph n th p phân d ư i d ng "x" s sau d u “.”  Hàm thành viên setf()  Cho cài t nhi u nh dng  Có th s d ng cho b t c lu ng xu t nào  i v i lu ng cho t p, hàm thành viên gi ng i t ư ng cout Gi i Thi u L p Trình 17
  19. a o  c sách:  Ch ươ ng 8, Lp Trình Cơ Bn C++  Tìm hi u th ư vi n iomanip  Các nh d ng xu t d li u  Tìm hi u thao tác v i t p truy c p ng u nhiên  Hi u qu cho c ơ s d li u l n Gi i Thi u L p Trình 18