Đối với NNLT C
Nhập xuất số nguyên (kiểu char, int)
- Có dấu dạng thập phân: %d hay %i
- Không dấu:
- Dạng thập phân: %u
- Dạng thập lục phân: %x hay %X
- Dạng bát phân: %o
- Trường hợp nhập xuất số nguyên kiểu khác:
- short (16-bit): %hd, %hi, %ho, %hu, %hx, %hX
- long: %ld, %li, %lo, %lu, %lx, %lX
- Nhập xuất số thực chấm động (kiểu float)
- Dạng viết thập phân: %f
- Dạng viết số mũ (chữ e hay E thay cho cơ số 10, ví dụ 1.2E-8): %e hay %E
- Trường hợp nhập xuất thực kiểu khác:
- double: %lf, %le, %lE
- long double: %Lf, %Le, %LE
- Ký tự đặc biệt: \\ (dấu \) và %% (dấu %)
- Ký tự tab và ký tự xuống dòng: \t, \n, \r
- Nhập xuất ký tự: %c
- Nhập xuất chuỗi ký tự: %s
- Về việc quy định động rộng và độ chính xác (nếu là số thực) cho dữ liệu xuất được ghi ngay sau dấu % với dạng wid.pre, ví dụ %9.2f nghĩa là độ rộng ít nhất 9 ký tự (thêm khoảng trống vào nếu thiếu) và nhiều nhất là 2 ký tự cho phần lẻ sau dấu chấm thập phân.
Đối với NNLT C++
- Việc nhập xuất được thực hiện bởi các đối tượng đã được định nghĩa sẵn trong <iostream>:
- cin kèm với toán tử >> (được gọi là extraction operator) để nhập dữ liệu.
- cout kèm với toán tử << (được gọi là insertion operator) để xuất dữ liệu.
- Được cung cấp hệ thống định dạng dữ liệu nhập xuất cho thiết bị nhập chuẩn và mở rộng cho các thiết bị nhập xuất khác như tập tin.
- Thêm chỉ thị sau vào đầu chương trình: #include <iomanip>
- Việc định dạng dữ liệu được thực hiện bằng các toán tử định dạng (manipulator).
- endl: xuống dòng mới.
- setw(n): định độ rộng của dữ liệu xuất.
- left và right: dùng chung với setw(n) để canh lề trái hay lề phải.
- setfill(ch): dùng chung với setw(n) để qui định ký tự ch được thêm vào thay vì dùng khoảng trắng.
- dec, oct, hex: được dùng để qui định số nguyên (khi nhập xuất) được ghi theo dạng thập phân, bát phân, thập lục phân.
- setprecision(n): dùng để qui định độ chính xác khi in số thực.
Chuyển đổi kiểu
- char và short được chuyển thành int và float được chuyển thành double.
- Nếu có một toán hạng là double, toán hạng còn lại sẽ được chuyển thành double, và kết quả là double.
- Nếu có một toán hạng là long, toán hạng còn lại sẽ được chuyển thành long, và kết quả là long.
- Nếu có một toán hạng là unsigned, toán hạng còn lại sẽ được chuyển thành unsigned và kết quả cũng là unsigned.
- Nếu tất cả toán hạng kiểu int, kết quả là int.
Ép kiểu dữ liệu
Một biểu thức được ép thành một kiểu nhất định bằng cách dùng kỹ thuật ép kiểu (cast).
Cú pháp : (kiểu dữ liệu) cast
Kiểu => Bất cứ kiểu dữ liệu hợp lệ trong C
Ngầm định: Kiểu dữ liệu đích phải có dãy giá trị lớn hơn kiểu dữ liệu nguồn.
Ví dụ: chuyển từ int sang float.
Ví dụ: chuyển từ int sang float.
int a = 10;
float f = a;
float f = a;
Tường minh: Thay đổi kiểu dữ liệu có dãy giá trị lớn sang dãy giá trị nhỏ hơn.
Ví dụ: chuyển từ float sang int.
Ví dụ: chuyển từ float sang int.
float f = 10.51;
int a = (int) f;
int a = (int) f;
Ví dụ: Viết chương trình nhập vào 2 số nguyên, Tính và xuất kết quả tổng, tích, hiệu và thương 2 số nguyên vừa nhập.
#include<stdio.h> #include<conio.h> void main() { int a, b; printf("Nhap 2 so nguyen: "); scanf("%d%d", &a, &b); int tong = a + b; int hieu = a - b; int tich = a * b; float thuong = (float)a/(float)b;//Ép kiểu từ số nguyên sang số thực printf("Tong = %d\n", tong); printf("Hieu = %d\n", hieu); printf("Tich = %d\n", tich); printf ("Thuong = %0.1f", thuong);//In ra số thực có 1 số thập phân getch(); }