Định dạng nhập xuất trong C | Laptrinhcanban.com

Định dạng nhập xuất trong C

Cùng tìm hiểu về Định dạng nhập xuất trong C. Bạn sẽ biết khái niệm định dạng nhập xuất trong C là gì, cũng như cách chỉ định và sử dụng của hầu hết các định dạng nhập xuất trong ngôn ngữ C sau bài học này.

Định dạng nhập xuất trong C là gì

Định dạng nhập xuất trong C chính là các bộ mô tả có tác dụng chỉ định định dạng hiển thị của các dữ liệu nhập và xuất trong C. Định dạng nhập xuất được sử dụng trong các hàm như printf(), fprintf(), sprintf(), scanf(), fscanf() và sscanf() trong ngôn ngữ C.

Bảng định dạng xuất trong C

Dưới đây là bảng các định dạng xuất thông dụng được sử dụng trong các hàm xuất dữ liệu trong C như printf(),fprintf(),sprintf().

Chuỗi định dạngĐại diện cho kiểu ký tựÝ nghĩaVí dụ
%ccharXuất ra một ký tự"%c"
%schar *Xuất ra một chuỗi ký tự"%8s", "%-10s"
%dint, shortXuất ra một số nguyên dưới dạng thập phân"%-2d","%03d"
%uunsigned int, unsigned shortXuất ra một số nguyên dưới dạng thập phân không dấu"%2u","%02u"
%xint, short, unsigned int, unsigned shortXuất ra một số nguyên dưới dạng thập lục phân%04x"
%oint, short,unsigned int, unsigned shortXuất ra một số nguyên dưới dạng bát phân"%06o","%03o"
%ffloatXuất ra một số thực"%5.2f"
%efloatXuất ra một số thực dưới dạng số mũ"%5.3e"
%gfloatXuất ra một số thực dưới dạng phù hợp nhất"%g"
%ldlongxuất ra số nguyên chính xác kép ở dạng thập phân"%-10ld"
%luunsigned longxuất ra số nguyên chính xác kép ở dạng thập phân không dấu"%10lu"
%lolong, unsigned longXuất ra số nguyên chính xác kép trong hệ bát phân"%12lo"
%lxlong, unsigned longxuất ra số nguyên chính xác kép ở hệ thập lục phân"%08lx"
%lfdouble, unsigned longxuất ra số thực chính xác gấp đôi"%8.3lf"
%adoubleXuất ra một số thực chính xác kép thập lục phân"%a"

Chỉ định số chữ số hiển thị trong C

Để chỉ định số chữ số hiển thị trong C, chúng ta sử dụng tới [chiều rộng tổng thể. chiều rộng sau dấu thập phân]. Chúng ta có thể lược bỏ một trong 2, hoặc là lược bỏ tất cả cũng không sao. Nếu không chỉ định chúng thì giá trị mặc định sẽ được sử dụng. Chú ý rằng chiều rộng sau dấu thập phân trong trường hợp chỉ định cho số có ý nghĩa là số chữ số hàng thập phân, tuy nhiên nếu chỉ định cho chuỗi ký tự sẽ có ý nghĩa là số ký tự đối đa của chuỗi đó.

Các ví dụ cụ thể:

Ví dụKết quả
printf("[%8.3f]", 123.45678);[ 123.456]
printf("[%15s]", "I am a boy.");[ I am a boy.]
printf("[%.6s]", "I am a boy.");[I am a]
printf("[%8.3e]", 1234.5678);[1.234e+3]

Lại nữa, cũng có những trường hợp mà chuỗi ký tự hiển thị thực tế có thể dài hơn số chữ số hiển thị được chỉ định. Điều này cần đặc biệt chú ý trong trường hợp chúng ta sử dụng hàm sprintf(). Lý do ở đây là vì hiện tượng tràn mảng. Ngay cả khi định dạng được chỉ định có cùng kích thước với vùng lưu trữ của chuỗi ký tự đi chăng nữa thì hiện tượng tràn mảng cũng có thể xảy ra.

Đệm số 0 đầu chuỗi cần in trong C

Trong trường hợp xuất số ra màn hình, chúng ta có thể đệm số 0 vào đầu chuỗi cho đủ độ dài của kết quả chuỗi Xuất ra màn hình như sau:

Ví dụKết quả
printf("[%08.3f]", 123.45678);[0123.456]
printf("[%05d]", 1);[00001]

Căn trái căn phải chuỗi cần in trong C

Chúng ta có thể căn trái căn phải chuỗi cần in trong C bằng cách sử dụng tới đối số flags - như dưới đây.

Ví dụKết quả
printf("[%-15s]", "I am a boy.");[I am a boy. ]
printf("[%15s]", "I am a boy.");[ I am a boy.]
printf("[%-8.3f]", 123.45678);[123.456 ]
printf("[%8.3f]", 123.45678);[ 123.457]
printf("[%-5d]", 1);[1 ]
printf("[%5d]", 1);[ 1]

Chỉ định dấu trong số khi in

Chúng ta có thể chỉ định dấu trong số khi in kết quả trong C bằng cách sử dụng tới đối số flags + như dưới đây.

Ví dụKết quả
printf("[%+5d]", 32);[ +32]
printf("[%+5d]", -32);[ -32]
printf("[%+8.3f]", 1.414);[ +1.414]

Bảng định dạng nhập trong C

Dưới đây là bảng các định dạng nhập thông dụng được sử dụng trong các hàm nhập dữ liệu trong C như scanf(),fscanf(),sscanf().

Chuỗi định dạngĐại diện cho kiểu ký tựÝ nghĩa
%ccharNhập một ký tự
%schar *Nhập một chuỗi ký tự
%dint, shortNhập một số nguyên dưới dạng thập phân
%uunsigned int, unsigned shortNhập một số nguyên dưới dạng thập phân không dấu
%xint, short, unsigned int, unsigned shortNhập một số nguyên dưới dạng thập lục phân
%oint, short,unsigned int, unsigned shortNhập một số nguyên dưới dạng bát phân
%ffloatNhập một số thực
%efloatNhập một số thực dưới dạng số mũ
%gfloatNhập một số thực dưới dạng phù hợp nhất
%ldlongNhập số nguyên chính xác kép ở dạng thập phân
%luunsigned longNhập số nguyên chính xác kép ở dạng thập phân không dấu
%lolong, unsigned longNhập số nguyên chính xác kép trong hệ bát phân
%lxlong, unsigned longNhập số nguyên chính xác kép ở hệ thập lục phân
%lfdouble, unsigned longNhập số thực chính xác gấp đôi
%adoubleNhập một số thực chính xác kép thập lục phân

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về định dạng nhập xuất trong C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.