1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Tin học cơ sở 2: Chương 6 - ThS. Nguyễn Mạnh Sơn

26 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 1,52 MB

Nội dung

Chương 6 - Kiểu cấu trúc và vào ra file, sau khi học xong chương này người học có thể hiểu về: Kiểu dữ liệu cấu trúc, khai báo và sử dụng cấu trúc, mảng cấu trúc và con trỏ cấu trúc, file trong ngôn ngữ C, các hàm vào ra file cơ bản.

& VC BB TIN HỌC CƠ SỞ KIỂU CẤU TRÚC VÀ VÀO RA FILE ThS Nguyễn Mạnh Sơn Khoa: Công nghệ thông tin Email: nguyenmanhson@gmail.com 6/5/2018 & VC BB Nội dung Kiểu liệu cấu trúc Khai báo sử dụng cấu trúc Mảng cấu trúc trỏ cấu trúc File ngôn ngữ C Các hàm vào file & VC BB Cấu Trúc  Một cấu trúc bao gồm mẫu liệu, không thiết kiểu, nhóm lại với  Một cấu trúc bao gồm nhiều mẫu liệu Biến L L A P T R I N H C U O N G A P T Tên sách Tác giả Lần R xuất I N H Mảng & VC BB Định Nghĩa Cấu Trúc Việc định nghĩa cấu trúc tạo kiểu liệu cho phép người dùng sử dụng chúng để khai báo biến kiểu cấu trúc Các biến cấu trúc gọi phần tử cấu trúc hay thành phần cấu trúc Ví dụ: struct cat { char bk_name [25]; char author [20]; int edn; float price; }; & VC BB Khai Báo Biến Cấu Trúc Khi cấu trúc định nghĩa, khai báo nhiều biến kiểu Ví dụ: struct cat books1; Câu lệnh dành đủ vùng nhớ để lưu trữ tất mục cấu trúc struct cat { char bk_name[25]; char author[20]; int edn; float price; } books1, books2; struct cat books1, books2; struct cat books1; struct cat books2; & VC BB Truy Cập Phần Tử Cấu Trúc  Các phần tử cấu trúc truy cập thơng qua việc sử dụng tốn tử chấm (.), tốn tử cịn gọi toán tử thành viên - membership  Cú pháp: structure_name.element_name  Ví dụ: scanf(“%s”, books1.bk_name); & VC BB Khởi Tạo Cấu Trúc Giống biến khác mảng, biến kiểu cấu trúc khởi tạo thời điểm khai báo struct employee { int no; char name [20]; }; Các biến emp1 emp2 có kiểu employee khai báo khởi tạo sau: struct employee emp1 = {346, “Abraham”}; struct employee emp2 = {347, “John”}; & VC BB Câu Lệnh Gán Sử Dụng Các Cấu Trúc -  Có thể sử dụng câu lệnh gán đơn giản để gán giá trị biến cấu trúc cho biến khác có kiểu  Chẳng hạn, books1 books2 biến cấu trúc có kiểu, câu lệnh sau hợp lệ books2 = books1; & VC BB Câu Lệnh Gán Sử Dụng Các Cấu Trúc - Trong trường hợp dùng câu lệnh gán trực tiếp, sử dụng hàm tạo sẵn memcpy() Cú pháp: memcpy (char * destn, char &source, int nbytes); Ví dụ: memcpy (&books2, &books1, sizeof(struct cat)); & VC Cấu Trúc Lồng Trong Cấu Trúc BB  Một cấu trúc lồng cấu trúc khác Tuy nhiên, cấu trúc lồng struct issue { char borrower [20]; char dt_of_issue[8]; struct cat books; }issl;  Việc truy cập vào phần tử cấu trúc tương tự với cấu trúc bình thường khác, issl.borrower  Để truy cập vào phần tử cấu trúc cat phần cấu trúc issl , issl.books.author 10 & VC BB Mảng Cấu Trúc  Mảng cấu trúc khai báo tương tự mảng thông thường  Một kiểu cấu trúc phải định nghĩa trước, sau biến mảng có kiểu khai báo  Ví dụ: struct cat books[50];  Để truy cập vào thành phần author phần tử thứ tư mảng books: books[4].author 12 & VC BB Khởi Tạo Các Mảng Cấu Trúc Mảng cấu trúc khởi tạo cách liệt kê danh sách giá trị phần tử cặp dấu móc  Ví dụ: struct unit { char ch; int i; }; struct unit series[3] = {{‘a’, 100}{‘b’, 200}{‘c’, 300}}; 13 & VC BB Con Trỏ Đến Cấu Trúc Con trỏ cấu trúc khai báo cách đặt dấu * trước tên biến cấu trúc Toán tử -> dùng để truy cập vào phần tử cấu trúc sử dụng trỏ Ví dụ: struct cat *ptr_bk; ptr_bk = &books; printf(“%s”,ptr_bk->author); Con trỏ cấu trúc truyền vào hàm, cho phép hàm thay đổi trực tiếp phần tử cấu trúc 14 & VC BB BÀI TẬP VỀ CẤU TRÚC 15 & VC BB KIỂU FILE Khái niệm  File lưu dạng text thông thường(text stream)  File lưu dạng nhị phân (binary stream) 16 & VC BB KIỂU FILE  Dạng text (text stream) + Các chuỗi lưu dạng text + Có thể xem bình thường + Mỗi lần ghi chuỗi phải thêm ký tự xuống dịng ‘\n’ • Dạng nhị phân(binary stream) + Các chuỗi lưu dạng mã hóa binary + Khơng mở xem dạng thông thường + Mỗi lần ghi tùy thuộc liệu thông thường dùng struct 17 & VC BB THAO TAC TRÊN FILE Mở file (xem có nhiều mode để mở) Thao tác (đọc, ghi ) Đóng file 18 & VC BB Mở File Text Stream Syntax FILE *fopen(const char *filename, const char *mode); Ví dụ: FILE *fp; fp=fopen("INPUT.TXT","w");// w có nghĩa mở để ghi 19 & VC BB CÁC MODE MỞ FILE Mode Meaning + "r“ Open a text file for reading + "w“ Create a text file for writing + "a“ Append to a text file + "rb“ Open a binary file for reading + "wb“ Create a binary file for writing + "ab“ Append to a binary file + "r+“ Open a text file for read/write + "w+“ Create a text file for read/write + "a+“ Open a text file for read/write + "rb+“ Open a binary file for read/write + "wb+“ Create a binary file for read/write + "ab+“ Open a binary file for read/write 20 & VC BB GHI FILE DẠNG TEXT STREAM Syntax: int fputs(const char *str, FILE *fp); Ví dụ: //ghi chuoi n xuong file text fputs(“Nguyen Thi Le”,fp); fputc('\n',fp);// phải thêm xuống dòng 21 & VC BB LẤY THÔNG TIN FILE DẠNG TEXT STREAM Syntax: char *fgets(char *str, int length, FILE *fp); Ví dụ: char chuoi_n2[100]; fgets(chuoi_n2,100,fp); 22 & VC BB Đọc File Binary Stream Syntax: size_t fread(void *buffer, size_t numbytes, size_t count, FILE *fp); Ví dụ: struct NhanVien { char MNV[10]; char HoTen[MAX]; char DiaChi[MAX] ; char Phai[4];//nhap Nam, Nu bool CBQL; }; NhanVien nv[10]; fread(&nv[i], sizeof(nv[i]), 1, f) 23 & VC BB Ghi File Binary Stream Syntax: size_t fwrite(const void *buffer, size_t numbytes, size_t count, FILE *fp); struct NhanVien { char MNV[10]; char HoTen[MAX]; char DiaChi[MAX] ; char Phai[4];//nhap Nam, Nu bool CBQL; }; NhanVien nv[10]; fwrite(&nv[i], sizeof(nv[i]), 1, f); 24 & VC BB Đọc file MNV HoTen DiaChi Phai CBQL MNV HoTen DiaChi Phai CBQL NV[0] Tuan 123 CMTT Nam 1 Huyen TDT Nu 25 & VC BB Bài tập áp dụng Sinh viên chuyển vào hình – bàn phím sang vào với file văn 26 ... khai báo khởi tạo sau: struct employee emp1 = {3 46, “Abraham”}; struct employee emp2 = {347, “John”}; & VC BB Câu Lệnh Gán Sử Dụng Các Cấu Trúc -  Có thể sử dụng câu lệnh gán đơn giản để gán... dấu * trước tên biến cấu trúc Toán tử -> dùng để truy cập vào phần tử cấu trúc sử dụng trỏ Ví dụ: struct cat *ptr_bk; ptr_bk = &books; printf(“%s”,ptr_bk->author); Con trỏ cấu trúc truyền vào... phần tử cấu trúc 14 & VC BB BÀI TẬP VỀ CẤU TRÚC 15 & VC BB KIỂU FILE Khái niệm  File lưu dạng text thông thường(text stream)  File lưu dạng nhị phân (binary stream) 16 & VC BB KIỂU FILE  Dạng

Ngày đăng: 20/05/2021, 02:17