Bài tập

Lập trình C: Kỹ thuật nhập xuất dữ liệu

Huy Erick

Bạn đã bắt đầu học lập trình C và bạn muốn nắm vững kỹ thuật nhập xuất dữ liệu. Trong bài viết này, chúng ta sẽ tìm hiểu về các hàm printf(), scanf(), getchar() và...

Bạn đã bắt đầu học lập trình C và bạn muốn nắm vững kỹ thuật nhập xuất dữ liệu. Trong bài viết này, chúng ta sẽ tìm hiểu về các hàm printf(), scanf(), getchar() và putchar() trong C. Điều này sẽ giúp bạn hiểu rõ cách xuất nhập dữ liệu và áp dụng chúng vào các chương trình của mình.

Lý thuyết cơ bản về nhập xuất dữ liệu trong lập trình C

Giới thiệu về các loại nhập xuất trong lập trình C

Trước tiên, chúng ta cần hiểu về các loại nhập và xuất dữ liệu trong lập trình C. Có hai loại trong mỗi trường hợp:

  • Input: bàn phím, file
  • Output: màn hình, file

Trong bài viết này, chúng ta sẽ tập trung vào kiểu nhập từ bàn phím và xuất ra màn hình. Các kiểu nhập từ và xuất ra file sẽ được giới thiệu trong bài viết khác.

Các hàm cơ bản hỗ trợ nhập xuất dữ liệu

Để thực hiện nhập và xuất dữ liệu trong lập trình C, chúng ta sử dụng hai cặp hàm cơ bản:

  • printf() và scanf()
  • putchar() và getchar()

Tất cả các hàm này đều nằm trong thư viện chuẩn stdio.h. Để sử dụng chúng, bạn có thể làm như sau:

#include 

int main() {
    // Code của bạn
    return 0;
}

Tìm hiểu về nhập xuất dữ liệu với hàm printf() và hàm scanf()

Xuất dữ liệu với hàm printf()

Hàm printf() cho phép bạn xuất dữ liệu ra màn hình console. Cú pháp của hàm printf() như sau:

printf("Control string", Argument list);

Trong đó:

  • Control string: là phần hiển thị ra màn hình.
  • Argument list (danh sách tham số): là danh sách các tham số kiểu hằng, biến, biểu thức hoặc hàm. Chúng được phân cách nhau bởi dấu phẩy.

Chú ý:

  • Control string luôn nằm trong cặp dấu nháy kép, bao gồm: text hiển thị, format command (bắt đầu bằng % và kí tự không nhìn thấy).
  • Danh sách tham số phải tương ứng với mỗi loại format trong control string về kiểu dữ liệu, số lượng và thứ tự.

Ví dụ:

int age = 20;
printf("I am %d years old.", age);

Một số loại format code hay dùng trong control string:

Cách in ra các kí tự đặc biệt:

printf("This is a new line\n");
printf("This is a tab\t");

Một số loại modifier trong hàm printf():

  • Field width modifier: dùng để xác định kích thước tối thiểu của dữ liệu, ví dụ: %4d.
  • '-' modifier: dùng để in dữ liệu ở dạng căn lề trái, ví dụ: %-4d.
  • Precision modifier: xác định số kí tự tối đa đằng sau dấu phẩy, ví dụ: %.2f.
  • '0' modifier: dùng để điền vào khoảng trống khi hiển thị dữ liệu với kích thước cho trước, ví dụ: %04f.
  • 'l' modifier: dùng để hiển thị số nguyên kiểu long int hoặc số thực double. Format code tương ứng là %ld.
  • 'h' modifier: dùng để hiển thị số nguyên short, ví dụ: %hd.

Nhập dữ liệu với hàm scanf()

Hàm scanf() dùng để nhập dữ liệu từ bàn phím. Cú pháp của hàm scanf() như sau:

scanf("Control string", &Variable list);

Các format dùng trong hàm printf() cũng có thể được sử dụng trong hàm scanf(). Tuy nhiên, có một số điểm khác biệt:

  • Hàm scanf() yêu cầu thêm kí tự & đằng trước biến cần nhập dữ liệu vào.
  • Hàm scanf() không hỗ trợ option %g. Ngoài ra, %f và %e là giống nhau.

Ví dụ:

int age;
scanf("%d", &age);

Tìm hiểu về nhập xuất dữ liệu với hàm getchar() và hàm putchar()

Hàm getchar()

Hàm getchar() dùng để đọc vào một kí tự từ bàn phím.

Ví dụ:

char ch;
ch = getchar();

Hàm putchar()

Hàm putchar() dùng để ghi một kí tự ra màn hình.

Hàm putchar() cần có một tham số truyền vào, đó có thể là biến, hằng kí tự, hằng dạng số, kí tự đặc biệt.

Ví dụ:

char ch = 'A';
putchar(ch);

Bài tập thực hành về nhập xuất dữ liệu trong lập trình C

Bài 1

Nhập vào hai cạnh của một hình chữ nhật. Tính chu vi và diện tích của hình chữ nhật đó và in ra màn hình (kết quả làm tròn đến 2 chữ số sau dấu phẩy).

Bài 2

Nhập vào bán kính của một hình tròn. Tính chu vi và diện tích của hình tròn đó và in ra màn hình (kết quả làm tròn đến 2 chữ số sau dấu phẩy).

Bài 3

Biết rằng mối quan hệ giữa độ Celsius (C) và độ Fahrenheit (F) là: C/5 = (F-32)/9. Viết chương trình nhập vào độ Celsius và in ra độ Fahrenheit tương ứng và ngược lại (kết quả làm tròn đến 1 chữ số sau dấu phẩy).

Chú ý: kết quả in ra bao gồm đơn vị (C) hoặc (F).

1