Professional Documents
Culture Documents
Slide PPLT Chương 3 Nhập-xuất
Slide PPLT Chương 3 Nhập-xuất
Học phần:
Phương pháp
lập trình
Nội dung:
❖ Chương 1. Tổng quan về lập trình
❖ Chương 2. Trừu tượng hoá dữ liệu
❖ Chương 3. Nhập - xuất dữ liệu và các kỹ thuật sinh dữ liệu
❖ Chương 4. Hàm và chương trình con
❖ Chương 5. Đệ quy và khử đệ quy
❖ Chương 6. Một số chiến lược thiết kế giải thuật
Chương 3. Nhập - xuất dữ liệu và các kỹ thuật sinh dữ liệu
3
Chương 3. Nhập - xuất dữ liệu
4
Chương 3. Nhập - xuất dữ liệu
3.1 Nhập - xuất dữ liệu
3.1.1 Dòng nhập –xuất chuẩn
Ký tự chuyển Kiểu dữ liệu cần hiển
Cách chuyển dạng
dạng thị
d hoặc i int Số nguyên hệ số 10 có dấu
ld hoặc li long Số nguyên hệ số 10 kiểu long có dấu
o int Số nguyên hệ số 8 không dấu
lo longh Số nguyên hệ số 8 kiểu long có dấu
u int Số nguyên hệ số 10 không dấu
f float, double Giá trị hiển thị là số thực được hiển thị
theo dấu phải động
c Char Giá trị hiển thị là một ký tự
5 s *char Giá trị hiển thị là một choỗi ký tự
Chương 3. Nhập - xuất dữ liệu
3.1 Nhập - xuất dữ liệu
3.1.1 Dòng nhập –xuất chuẩn
❖Ví dụ: 1. #include<stdio.h>
2. main(){
3. int a=12; float b=12.3456; char ch='a'; char st[30]="Xin chao";
4. printf("a = %d\n", a);
5. printf("a = %6d\n ", a);
6. printf("a = %-6d\n", a);
7. printf("b = %f\n", b);
8. printf("b = %6.2f\n", b);
9. printf("b = %-6.2f\n", b);
10. printf("ch = %c\n", ch);
11. printf("st = %s", st);
6 12. }
Chương 3. Nhập - xuất dữ liệu
Hàm đọc thông tin từ bàn phím, chuyển dịch chúng thành số nguyên,
thực, ký tự,… rồi lưu vào bộ nhớ theo địa chỉ xác định
• Chuỗi điều khiển %d, %f, %c, %s, %x…
• đối 1, đối 2,… là địa chỉ của các biến
8
Chương 3. Nhập - xuất dữ liệu
10
Chương 3. Nhập - xuất dữ liệu
1. int main(){
2. char xau[100];
3. printf("Nhập vào một chuỗi có dấu cách trống: ")
4. scanf("%[^\n]",xau);
5. printf("Xâu vừa nhập: %s", xau);
6. }
12
Chương 3. Nhập - xuất dữ liệu
int main(){
char xau[100];
scanf("%[^\0]",xau);
printf("%s", xau);
}
13
Chương 3. Nhập - xuất dữ liệu
• Xây dựng chương trình nhập vào 1 chuỗi chỉ có chữ cái thường và số 8,
dấu cách và dấu * và dấu ^
int main(){
char xau[100];
scanf("%[a-z8*^ ]",xau);
printf("%s", xau);
}
15
Chương 3. Nhập - xuất dữ liệu
17
Chương 3. Nhập - xuất dữ liệu
• Làm sạch vùng đệm của tệp tin: int fflush(FILE *f)
22
Chương 3. Nhập - xuất dữ liệu
3.1 Nhập - xuất dữ liệu
3.1.2.4 Đọc ghi dữ liệu từ file .txt trong C
#include <stdio.h>
▪ Để đọc và ghi dữ liệu vào tệp văn #include <stdlib.h>
bản, sử dụng hàm fscanf và fprintf int main() {
trong C int num; FILE *fptr;
▪ 2 hàm trên là những phiên bản khác fptr = fopen("D:\\Baitap\\program.txt","w");
if(fptr == NULL) {
của lần lượt 2 hàm printf() và
printf("Error!");
scanf(). Tuy nhiên, có một sự khác exit(1);
biệt: 2 hàm fprint() và fscanf() sẽ chỉ }
dẫn con trỏ đến cấu trúc FILE. printf("Enter num: "); scanf("%d",&num);
fprintf(fptr,"%d",num);
❖Ví dụ 1: Ghi dữ liệu vào file văn bản fclose(fptr);
return 0;
int fprintf(FILE *f , const char *đặc tả, ds biến) }
23
Chương 3. Nhập - xuất dữ liệu
❖Bài tập
Bài 1:
• Cho tệp dulieu1c.txt chứa các thông tin như sau:
- Dòng 1: chứa số lượng phần tử của dãy
- Dòng 2: chứa các số nguyên trong dãy, các số cách nhau bởi dấu
cách trống.
Ví dụ: 5
25 2 67 12 8
• Hãy đọc dữ liệu từ tệp dulieu1c.txt ra mảng một chiều A, sau đó sắp xếp
các phần tử của mảng theo chiều tăng dần và ghi dữ liệu của mảng vào
tệp sapxep1c.txt.
25
Chương 3. Nhập - xuất dữ liệu
❖Bài tập
Bài 2:
• Cho tệp dulieu2c.txt chứa các thông tin như sau:
- Dòng 1: chứa số lượng phần tử hàng, cột của ma trận
- Các dòng 2, 3…: chứa lần lượt các giá trị của từng hang của ma trận,
các số cách nhau bởi dấu cách trống.
Ví dụ: 23
5 2 67
8 33 3
• Hãy đọc dữ liệu từ tệp dulieu2c.txt ra mảng 2 chiều A, sau đó sắp xếp các phần
tử trên từng hàng của mảng theo chiều tăng dần và ghi dữ liệu của mảng vào
tệp sapxep2c.txt.
26
Chương 3. Nhập - xuất dữ liệu
28
Chương 3. Nhập - xuất dữ liệu
Thank you!