Slide 1

Tài liệu tương tự
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 11. Tệp tin Nội dung 1. Khái niệm cơ bản 2. Các thao tá

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 9. Vào ra dữ liệu trong C Các lệnh vào ra dữ liệu C cun

Lập trình và ngôn ngữ lập trình

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 11. Mảng và xâu kí tự Nội dung 1. Mảng 2. Xâu kí tự 2 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 13. Hàm Nội dung 1. Khái niệm hàm 2. Khai báo và sử dụn

Trường ĐHBK Hà Nội Khoa Điện Bộ môn Điều khiển Tự động Tài liệu hướng dẫn thực hành: KĨ THUẬT LẬP TRÌNH C/C++ Bài 1: Lập trình cơ sở 1 Mục đích bài th

PowerPoint Template

Slide 1

Microsoft Word - 10 quy tac then chot ve bao mat.doc

Chương 1:

Bài tập thực hành NNLT Visual Basic GV. Nguyễn Thị Hải Bình BÀI THỰC HÀNH ÔN TẬP 1. Sinh viên ĐỌC CẨN THẨN TẤT CẢ NỘI DUNG trong bài thực hành trước k

UART0

Hàm và lớp template trong Lập trình hướng đối tượng Hàm và lớp template trong Lập trình hướng đối tượng Bởi: unknown Trong phần này, chúng ta tìm hiểu

OpenStax-CNX module: m Giới thiệu về ngôn ngữ C và môi trường turbo C 3.0 ThS. Nguyễn Văn Linh This work is produced by OpenStax-CNX and licens

Animation, Modules 6 - Hoạt hình, tách file

Bài thực hành 6 trang 106 SGK Tin học 10

Bài 7. Con trỏ Mục tiêu: 1. Luyện tập sử dụng con trỏ và địa chỉ của các biến 2. Sử dụng con trỏ khi thao tác với mảng. Giới hạn: không dùng các thư v

TRƯỜnG ĐẠI HỌC BÁCH KHOA HÀ nội VIỆn CÔnG nghệ THÔnG TIn VÀ TRUYỀn THÔnG TIN HỌC ĐẠI CƯƠNG Bài 10. Các cấu trúc lập trình trong C Nội dung 1. Cấu trúc

View, Procedure, Function & Trigger

Microsoft Word - su_dung_sqlite_voi_php.docx

Các Lược Giảng Chuyên Sâu về Sử Dụng Văn Lệnh BASH trong Linux/Bài 1 Các Lược Giảng Chuyên Sâu về Sử Dụng Văn Lệnh BASH trong Linux/Bài 1 Bởi: CS Võ Q

Template and Exception Template and Exception Bởi: Thanh Hiền Vũ TEMPLATE Trong phần này, chúng ta tìm hiểu về một trong các đặc tính còn lại của C++,

Microsoft Word - doc_ghi_file_trong_nodejs.docx

NGÔN NGƯ LÂ P TRIǸH Biên tập bởi: nguyenvanlinh

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 5. Kiểu dữ liệu và biểu thức trong C Nội dung 1. Các ki

05-quanlytientrinh.pptx

Những cơ sở của ngôn ngữ C# Những cơ sở của ngôn ngữ C# Bởi: phamvanviet truonglapvy Trong chương này sẽ trình bày về hệ thống kiểu trong C#; phân biệ

Chương II - KIẾN TRÚC HỆ ĐIỀU HÀNH

QUỐC HỘI

Tìm hiểu ngôn ngữ lập trình Visual Basic Tìm hiểu ngôn ngữ lập trình Visual Basic Bởi: Khuyet Danh Tìm hiểu ngôn ngữ lập trình Visual Basic Tổng quan

Ví dụ về duyệt đồ thị ưu tiên chiều sâu DFS và ứng dụng Đồ thị ví dụ: Nguyễn Hữu Tuân vimaru.edu.vn Hình 1: Đồ thị vô hướng có 8 đỉnh Với đồ thị trên,

Microsoft Word - danh-sach-lien-ket-doi-trong-c.docx

Chöông 1 (tt.)

Chương trình dịch

KỸ NĂNG GIAO TIẾP ỨNG XỬ Trong cuộc sống, trong giao tiếp hàng ngày con người luôn phải ứng phó với biết bao tình huống, có lúc dễ dàng xử lý, có lúc

BỘ GIAO THÔNG VẬN TẢI TRƢỜNG ĐẠI HỌC HÀNG HẢI BỘ MÔN: KHOA HO C MA Y TI NH KHOA: CÔNG NGHỆ THÔNG TIN BÀI GIẢNG KỸ THUẬT LẬP TRÌNH C TÊN HỌC PHẦN : KỸ

Hướng dẫn Bắt đầu Nhanh Microsoft Publisher 2013 trông khác với các phiên bản trước, vì vậy chúng tôi tạo ra hướng dẫn này để giúp bạn dê dàng nắm bắt

Quản Lý Ơn riêng Thiên Chúa đã ban, mỗi người trong anh em phải dùng mà phục vụ kẻ khác. Như vậy, anh em mới là những người khéo quản lý ân huệ thiên

Bài 15: QUẢN LÝ BẢNG TÍNH 15.1 Các khái niệm Ô (cell) là đơn vị cơ sở của bảng tính, mỗi ô có địa chỉ riêng, địa chỉ gồm Chỉ số cột Chỉ số dòng, ví dụ

ThemeGallery PowerTemplate

Danh sách tuyến tính kiểu hàng đợi Danh sách tuyến tính kiểu hàng đợi Bởi: Khoa CNTT ĐHSP KT Hưng Yên ĐỊNH NGHĨA Hàng đợi là một vật chứa (container)

100 CÂU TRẮC NGHIỆM TIN HỌC 6 I. CÂU HỎI TRẮC NGHIỆM Câu 1: Để viết đơn đăng kí tham gia câu lạc bộ, em nên sử dụng phần mềm nào dưới đây? A. Chương t

Microsoft Word - Tin hoc dai cuong 2015

BỘ GIÁO DỤC VÀ ĐÀO TẠO

Kiểm soát truy suất Kiểm soát truy suất Bởi: Khoa CNTT ĐHSP KT Hưng Yên Khái niệm Bảo mật thực chất là kiểm soát truy xuất [1]. Mục đích của bảo mật m

Microsoft Word - khoahochethong.docx

Phân tích đoạn trích Trao duyên của truyện kiều

Document

Hướng dẫn sử dụng Bếp Từ Bosch PID775N24E Bếp từ 3 bếp nhập khẩu Bosch PID775N24E có DirectControl với truy cập trực tiếp đến 17 cấp độ nấu ăn. 3 khu

Chuỗi Chuỗi Bởi: phamvanviet truonglapvy Chuỗi (string) trong C# là một kiểu dựng sẵn như các kiểu int, long, có đầy đủ tính chất mềm dẻo, mạnh mẽ và

HƯỚNG DẪN SỬ DỤNG BẾP TỪ BOSCH PID679F27E Cảm ơn quý khách hàng đã lựa chọn sản phẩm bếp điện từ mang thương hiệu nổi tiếng BOSCH, hi vọng sản phẩm sẽ

Slide 1

Microsoft Word - bo_tien_xu_ly_trong_c.docx

Hãy chọn phương án đúng CÂU HỎI TRẮC NGHIỆM TIN HỌC 7 HK1 Câu 1: Bảng tính thường được dùng để: a. Tạo bảng điểm của lớp em b. Bảng theo dõi kết quả h

BỘ LUẬT DÂN SỰ CỦA QUỐC HỘI NƯỚC CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM SỐ 33/2005/QH11 NGÀY 14 THÁNG 6 NĂM 2005 Căn cứ vào Hiến pháp nước Cộng hoà xã hội

Chương trình dịch

Microsoft Word - CXLKTS-Mat_ Tran_ Van_ Hoa_ Giua_ Ta_ va_ Tau U.doc

Đề cương chương trình đại học

Cây và cây nhị phân Cây và cây nhị phân Bởi: Trần Hạnh Nhi CẤU TRÚC CÂY Định nghĩa 1: cây là một tập hợp T các phần tử (gọi là nút của cây) trong đó c

Cảm nghĩ về tình bạn

Tải truyện Đóng Gói Gả Chồng (Trọng Sinh Trước Cửa Cục Dân Chính) | Chương 10 : Chương 10: Lời ân ái

Bài 1 Nội dung chính trong bài: Khám phá những công cụ vẽ cải tiến Lệnh Copy và Paste Motion Tìm hiểu tính năng nhập và xuất thành video cải tiến Sử d

Xử lý ngoại lệ

Slide 1

1

LUẬN VĂN: Áp dụng quản lý rủi ro vào qui trình thủ tục hải quan đối với hàng hóa xuất, nhập khẩu

Copyright vietjack.com Chuỗi (String) trong C# Trong C#, bạn có thể sử dụng các chuỗi (string) như là mảng các ký

Con đường lành bệnh Tác giả: H. K. Challoner Việc chữa bệnh bằng những phương pháp khác y khoa thông thường hiện đang thịnh hành, nên tác phẩm The Pat

1 Tạo slide trình diễn với Microsoft Powerpoint Tạo slide trình diễn với Microsoft Powerpoint Người thực hiện Hoàng Anh Tú Phạm Minh Tú Nội dung 1 Mục

Công ty CP công nghệ thẻ NACENCOMM HÓA ĐƠN ĐIỆN TỬ CA2 CÔNG TY CỔ PHẦN CÔNG NGHỆ THẺ NACENCOMM TÀI LIỆU NGHIỆP VỤ HÓA ĐƠN ĐIỆN TỬ CA2 Hà Nội 12/2017 1

Phân tích những bi kịch của phụ nữ dưới thời phong kiến

Tác giả: Giáo sư Andreas Thalassinos (Trưởng phòng Đào tạo của FXTM)

Microsoft Word - dinh_dang_smartart_trong_powerpoint_2010.docx

BÀI 16: ĐỊNH DẠNG VĂN BẢN Khái niệm định dạng văn bản: Định dạng văn bản là trình bày các phần văn bản nhằm mục đích cho văn bản rõ ràng và đẹp, nhấn

CÔNG TƠ ĐIỆN XOAY CHIỀU KIỂU ĐIỆN TỬ 3 PHA VSE3T TÀI LIỆU KỸ THUẬT Dùng cho công tơ điện xoay chiều kiểu điện tử 3 pha VSE3T o 230/400V - 5(6)A (VSE3T

Slide 1

HƯỚNG DẪN SỬ DỤNG Loa Bluetooth Di động Vui lòng đọc kỹ tài liệu hướng dẫn này trước khi vận hành bộ thiết bị của bạn vàgiữ lại để tham khảo sau. MODE

TRUNG TÂM KINH DOANH VNPT ĐỒNG THÁP o0o TÀI LIỆU HƯỚNG DẪN KHAI THÁC Website QUẢN LÝ CÔNG NỢ - HÓA ĐƠN ĐIỆN TỬ dongthap.vnpt.vn/tt

Chapter #

Kiểu dữ liệu văn bản Kiểu dữ liệu văn bản Bởi: PGS. TS. NGƯT Phạm Văn Huấn Ngoài những dữ liệu số như các số nguyên, số thực, máy tính còn có thể lưu

Quốc hội CỘNG HÒA DÂN CHỦ NHÂN DÂN LÀO Hòa bình-độc lập-dân chủ-thống nhất-thịnh vượng Số 11/QH Viêng chăn, ngày 9/11/2005 LUẬT DOA

HIỆP ĐỊNH GIỮA CHÍNH PHỦ NƯỚC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM VÀ CHÍNH QUYỀN KHU HÀNH CHÍNH ĐẶC BIỆT HỒNG KÔNG CỦA NƯỚC CỘNG HÒA NHÂN DÂN TRUNG HOA

Lớp và đối tượng-các hàm và các lớp friend Lớp và đối tượng-các hàm và các lớp friend Bởi: Thanh Hiền Vũ CÁC HÀM VÀ CÁC LỚP friend Một hàm friend của

Hướng dẫn Sử dụng Điện thoại Nokia C2-00 Số phát hành 1.1

Chương trình dịch

mySQL - Part 1 - Installation

1_GM730_VIT_ indd

0. Hướng dẫn sử dụng phần mềm chấm công

HƯỚNG DẪN SỬ DỤNG

HƯỚNG DẪN SỬ DỤNG PHÍM TẮT TRONG PHẦN MỀM GÕ CÔNG THỨC MATHTYPE I. Cài đặt phần mềm a) File cài đặt phần mềm Mathtype 6.9 các quý thầy cô có thể tìm k

Câu lệnh (statement) Câu lệnh (statement) Bởi: Khuyet Danh Trong C# một chỉ dẫn lập trình đầy đủ được gọi là câu lệnh. Chương trình bao gồm nhiều câu

Lớp đối tượng String Lớp đối tượng String Bởi: Khuyet Danh Ngôn ngữ C# hỗ trợ khá đầy đủ các chức năng của kiểu chuỗi mà chúng ta có thể thấy được ở c

Hệ điều hành Bài tập tuần 6 1 Quản lý bộ nhớ Bài tập 1 : Xem thông tin bộ nhớ 1. Sử dụng top, ps đọc thông tin về kích thước vùng nhớ của 1 tiến trình

Các biến và các kiểu dữ liệu trong JavaScript Các biến và các kiểu dữ liệu trong JavaScript Bởi: Hà Nội Aptech Các biến (Variables) Biến là một tham c

Chương trình dịch

Huong dan su dung phan mem Quan ly chat luong cong trinh GXD

Bản ghi:

Bài 6: Xuất nhập (input/output) 1

Khái niệm Người lập trình thường xuyên phải làm việc với một số thiết bị vào ra như màn hình, bàn phím, file, máy in, Với mỗi chương trình, có: Đầu ra chuẩn stdout: mặc định là màn hình console, nhưng có thể được coi như một file ảo chỉ ghi, và có thể định nghĩa lại là một file trên đĩa hoặc máy in Đầu ra chuẩn cho lỗi stderr: tương tự stdout, nhưng thường dùng để ghi các dòng lỗi gặp phải trong chương trình Đầu vào chuẩn stdin: mặc định là bàn phím, nhưng có thể được coi như một file ảo chỉ đọc, và có thể định nghĩa lại là một file trên đĩa 2

Mở đầu Xuất ra stdout Xuất một ký tự: int putchar(int c); Xuất một dòng ký tự: int puts(const char* s); Xuất một chuỗi theo định dạng: int printf(const char* format,...); Nhập từ stdin Đọc một ký tự: int getchar(); Đọc một dòng ký tự: char* gets(char* s); Đọc một chuỗi theo định dạng: int scanf(const char* format,...); 3

Xuất nhập từ file Kiểu file: typedef struct { } FILE; Trình tự thao tác với file: Mở/tạo file Đọc/ghi dữ liệu Đóng Trong kiểu FILE có trường lưu thông tin vị trí đang đọc/ghi của file, gọi là con trỏ file Mở file: FILE* fopen(const char* fname, const char* mode); mode Ý nghĩa mode Ý nghĩa "r" Chỉ cho phép đọc "r+" Cho phép đọc và ghi "w" "a" Chỉ cho phép ghi, xoá nội dung file cũ nếu có hoặc tạo file mới nếu chưa có Chỉ cho phép ghi, trỏ con trỏ đến cuối file để ghi tiếp hoặc tạo file mới nếu chưa có "w+" "a+" Cho phép đọc và ghi, xoá nội dung file cũ nếu có hoặc tạo file mới nếu chưa có Cho phép đọc và ghi, trỏ con trỏ tới cuối file để ghi tiếp hoặc tạo file mới nếu chưa có "t" Đọc/ghi dạng văn bản (text) "b" Đọc/ghi dạng nhị phân (binary) 4

Chú ý với việc mở file Việc mở file có thể không thành công và trả về NULL cần kiểm tra giá trị trả về của fopen() để biết đã mở file thành công không Các lý do có thể khiến mở file không thành công: Mở file để đọc mà file đó không tồn tại Người dùng hiện tại không có quyền File đang được mở với chế độ hạn chế bởi một chương trình nào đó Có quá nhiều file đang mở (hệ điều hành có giới hạn số file được mở đồng thời) Các file được mở với hàm fopen() không hạn chế được mở lại 5

Mở file và hạn chế mở lại Đôi khi ta không muốn chương trình khác can thiệp vào một file ta đang mở để đọc/ghi FILE* _fsopen(const char* fname, const char* mode, int shflag); shflag: cờ cho phép file được mở lại hay không #include <share.h> shflag _SH_DENYNO _SH_DENYRD _SH_DENYWR _SH_DENYRW Ý nghĩa Không hạn chế Hạn chế được mở lại với chế độ đọc Hạn chế được mở lại với chế độ ghi Hạn chế được mở lại với cả chế độ đọc và ghi Lưu ý: Hàm này chỉ có trong MS Visual C 6

Ghi vào file File văn bản (text) và nhị phân (binary) File văn bản: một số ký tự đặc biệt như chuyển đổi giữa '\n' và "\r\n", xử lý ký tự hết file thích hợp file dạng văn bản File nhị phân: không thay đổi dữ liệu ghi vào thích hợp với việc lưu dữ liệu dạng nhị phân Ghi dữ liệu text: int fputc(int c, FILE* file); int fputs(const char* s, FILE* file); int fprintf(file* file, const char* format,...); Dùng tương tự các hàm putchar(), puts(), printf() Ghi dữ liệu nhị phân: int fwrite(const void* buf, int size, int count, FILE* file); Ghi một mảng với count phần tử, kích thước mỗi phần tử là size 7

Đọc từ file 8 Đọc dữ liệu text: int fgetc(file* file); int fgets(char* s, int n, FILE* file); int fscanf(file* file, const char* format,...); Dùng tương tự các hàm getchar(), gets(), scanf() nhưng trả về EOF nếu đã kết thúc file. Đọc dữ liệu nhị phân: int fread(void* buf, int size, int count, FILE* file); Đọc một mảng với count phần tử, kích thước mỗi phần tử là size Kiểm tra kết thúc file hay chưa: int feof(file* file); Vì việc đọc/ghi file có sử dụng bộ đệm, nên thường phải dùng hàm fflush() để làm sạch bộ đệm trước khi chuyển từ ghi sang đọc, hoặc từ đọc sang ghi nếu mở file ở chế độ đọc và ghi đồng thời int fflush(file* file);

Các hàm khác về đọc/ghi file Đóng file: int fclose(file* file); Chuyển con trỏ file: void rewind(file* file); int fseek(file* file, long offs, int org); org = SEEK_CUR: tính từ vị trí hiện tại org = SEEK_END: tính từ cuối file org = SEEK_SET: giá trị tuyệt đối (tính từ đầu file) Ví trí hiện tại của con trỏ: long ftell(file* file); Xoá file: int remove(const char* path); Đổi tên và chuyển file: int rename(const char* old, const char* new); 9

Ví dụ: hàm copy file int copy_file(const char* src, const char* dst) { FILE *fs = NULL, *fd = NULL; char buf[1024]; int num; if ((fs = fopen(src,"rb")) == NULL) return -1; if ((fd = fopen(dst,"wb")) == NULL) { fclose(fs); return -1; } while(!feof(fs)) { num = fread(buf, 1, sizeof(buf), fs); fwrite(buf, 1, num, fd); } } 10 fclose(fs); fclose(fd); return 0;

stdin, stdout, stderr Đầu vào/ra chuẩn thực chất là các biến kiểu FILE* được định nghĩa sẵn, nên việc đọc/ghi với các hàm printf( ), scanf( ) tương đương với việc dùng fprintf(stdout, ) và fscanf(stdin, ) Tương tự với các hàm putchar(), puts(), getchar(), gets() cũng thực hiện việc đọc/ghi trên stdin và stdout Định hướng lại đầu vào/ra chuẩn: Ký hiệu command > file command 1> file command 2> file command >> file command 1>> file command 2>> file command < file command1 command2 Ý nghĩa Đổi stdout ra file, tạo file mới hoặc xoá file cũ nếu đã có Đổi stderr ra file, tạo file mới hoặc xoá file cũ nếu đã có Đổi stdout ra file và nối tiếp vào file đó Đổi stderr ra file và nối tiếp vào file đó Đổi stdin từ file Đổi stdout của command1 thành stdin của command2 11

stdin, stdout, stderr (tiếp) Một số file đặc biệt Tên file Ý nghĩa Tên file Ý nghĩa &0 stdin nul Bỏ qua &1 stdout prn, lpt1-9 Máy in &2 stderr con Màn hình aux AUX port com1-9 COM ports Ví dụ: 12 Dẫn hướng cả stdout và stderr vào file result.txt C:\>dir *.dat >result.txt 2>&1 Dẫn hướng cả stdout ra máy in và stderr vào file error.log C:\>stuff >prn 2>error.log Dẫn hướng đầu vào từ file input.txt và đầu ra là file output.txt C:\>process <input.txt >output.txt Tạo pipe (output của lệnh nọ là input của lệnh kia) C:\>type source.c more

Đọc/ghi trên bộ nhớ Ghi: Đọc: sprintf(char* buffer, const char* format,...); sscanf(const char* buffer, const char* format,...); Dùng tương tự như fprintf() và fscanf() nhưng dữ liệu được lưu vào một vùng nhớ xác định trong tham số buffer Ví dụ: 13 char s[50]; sprintf(s, "sin(pi/3) = %.3f", sin(3.14/3)); Kết quả: s sẽ chứa chuỗi "sin(pi/3) = 0.866"

Đọc/ghi an toàn 14

Lỗi tràn bộ đệm Xảy ra khi chương trình ghi dữ liệu vào một biến nhiều hơn kích thước của nó Ví dụ: copy một chuỗi 10 ký tự vào biến chỉ dài 5 ký tự char s[5]; strcpy(s, "0123456789"); /* lỗi */ Lỗi tràn bộ đệm rất nguy hiểm vì gây ra những lỗi không dự đoán trước, đặc biệt có thể khiến người sử dụng kiểm soát máy tính và làm bất cứ gì Cần kiểm soát chiều dài của dữ liệu nhập so với vùng nhớ được cấp phát cho các biến Các hàm chuẩn của C không kiểm tra lỗi tràn bộ đệm sử dụng các hàm mở rộng trong Visual C từ 2005 15

Các hàm về chuỗi và bộ nhớ memcpy_s(void* dest, int size, const void* src, int count); memmove_s(void* dest, int size, const void* src, int count); strcpy_s(char* dest, int size, const char* src); strcat_s(char* dest, int size, const char* src); _strlwr_s(char* str, int size); _strupr_s(char* str, int size); 16

Các hàm đọc dữ liệu gets_s(char* str, int size); scanf_s(const char* format, ); Thêm các tham số kiểm tra kích thước biến với chuỗi và ký tự int i; float f; char c; char s[10]; scanf_s("%d %f %c %s", &i, &f, &c, 1, s, 10); Tương tự với các hàm fscanf_s(), sscanf_s() 17

Bài tập 1. Viết chương trình đổi các ký tự trong một file sang chữ hoa (tên file từ tham số dòng lệnh) 2. Viết chương trình đếm số từ và số dòng trong một file (quy ước từ cách nhau bởi một trong các ký tự: cách, tab, xuống dòng) 3. Viết chương trình nối một file vào một file khác 4. Viết chương trình in ra dòng thứ 10 của một file 5. Viết chương trình chèn một dòng vào dòng thứ 10 của một file 6. Viết chương trình nhập dữ liệu cho cấu trúc SinhVien từ bàn phím, sau đó thử thay đổi stdin và stdout từ file và xem kết quả 7. Viết một hàm trả về kích thước của một file 18