scanf() trong C và cách nhập dữ liệu | Laptrinhcanban.com

scanf() trong C và cách nhập dữ liệu

Cùng tìm hiểu về scanf trong C và cách nhập dữ liệu từ bàn phím. Bạn sẽ học được cách sử dụng hàm scanf() để nhập dữ liệu trong C với các kiểu thông dụng như nhập số trong C, nhập chuỗi trong C, cách nhập nhiều dữ liệu cùng lúc trong C cũng như cách chỉ định số lần nhập dữ liệu trong C sau bài học này.

scanf trong C là gì

scanf() trong C là một hàm cài sẵn trong tệp tiêu đề Standard Input / Output, có chức năng nhận dữ liệu nhập từ bàn phím vào chương trình C.
Hàm input() trong Python

Chúng ta sử dụng hàm scanf() trong C với cú pháp sau đây:

scanf(*format, &object1, &object2, … )

Trong đó:

  • &object: đối tượng (dữ liệu) cần nhập vào chương trình. Chúng ta có thể chỉ định một hoặc là nhiều đối tượng khác nhau và nhập chúng cùng lúc từ bàn phím, và trong trường hợp có nhiều đối tượng thì cần phải đặt chúng cách nhau bởi dấu phẩy.
  • *format: tập hợp chuỗi định dạng nhập xuất của các đối tượng cần nhập vào chương trình. Định dạng nhập xuất giúp chỉ định kiểu dữ liệu của đối tượng cần nhập vào, và dấu * có ý nghĩa là số nhiều và có bao nhiêu đối tượng được chỉ định thì cũng sẽ có bấy nhiêu định dạng tương ứng được chỉ định. Xem thêm: Định dạng nhập xuất trong C.
  • Ký hiệu & kết hợp với tên object nhằm biểu thị địa chỉ của biến được sử dụng để lưu giá trị của object đó trong bộ nhớ máy tính.

Lưu ý là chúng ta cần thêm ký tự & vào đằng trước các object trong hàm scanf, trừ trường hợp object đó thuộc kiểu mảng. Lý do là bởi mảng vốn đã biểu diễn địa chỉ rồi, nên chúng ta mới không cần thêm & để biểu thị địa chỉ nữa.

Hàm scanf() sẽ nhập từ bàn phím vào chương trình các đối tượng theo đúng như định dạng format đã được chỉ định. Lưu ý là chúng ta cần chỉ định chính xác format của đối tượng cần nhập, nếu không thì sẽ không thể nhập đúng kiểu dữ liệu mong muốn, hoặc là sẽ xảy ra lỗi trong quá trình compile chương trình C. Ví dụ như nếu muốn nhập kiểu số nguyên dạng thập phân thì phải chỉ định format là %d, hoặc muỗn nhập kiểu chuỗi thì phải là %s chẳng hạn.

Các định dạng nhập thông dụng trong C

Định dạng nhập giúp chúng ta chỉ định kiểu dữ liệu của giá trị được nhập vào. Tùy vào kiểu dữ liệu mà chúng ta sử dụng định dạng khác nhau cho phù hợp. Có nhiều kiểu định dạng nhập trong C mà bạn có thể tham khảo trong bài viết dưới đây:

Trong đó, các định dạng nhập thông dụng nhất được liệt kê trong bảng sau:

Định dạngKiểu dữ liệuÝ nghĩa
%ccharký tự
%schar *chuỗi ký tự
%dint, shortSố nguyên dạng thập phân
%ffloatSố thực
%lfdoubleSố thực chính xác gấp đôi

Ứng dụng các định dạng nhập này, chúng ta có thể nhập các dữ liệu trong C như dưới đây.

Nhập chuỗi trong c

Nhập ký tự trong C | scanf char trong c

Chúng ta sử dụng định dạng %c để nhập ký tự trong C bằng hàm scanf() giống như ví dụ sau đây:

#include <stdio.h>

int main(void) {
printf("Nhap ky tu: ");

char chr;
scanf("%c", &chr);

printf("Ky tu vua nhap: %c\n", chr);

return 0;
}

Màn hình nhập dữ liệu sẽ hiện ra như sau:
scanf char trong c

Nhập chuỗi string trong C | scanf string trong c

Chúng ta sử dụng định dạng %s để nhập chuỗi string trong C bằng hàm scanf() giống như ví dụ sau đây:

#include <stdio.h>

int main(void) {
printf("Nhap chuoi ky tu: ");

char str[10];
scanf("%s", str);

printf("Chuoi ky tu vua nhap: %s\n", str);

return 0;
}

Màn hình nhập dữ liệu sẽ hiện ra như sau:
scanf string trong c

Nhập số trong c

Về cơ bản thì hàm scanf được dùng để nhập chuỗi trong C. Tuy nhiên chúng ta cũng có thể nhập số trong C với hàm này, và sau đó thực hiện các tính toán thông thường với số được nhập vào.

Các loại số có thể nhập vào như số nguyên, số thực v.v.. tùy thuộc vào định dạng mà chúng ta chỉ định khi nhập số.

Nhập số nguyên trong C | scanf int trong c

Chúng ta sử dụng định dạng %d để nhập số nguyên trong C bằng hàm scanf() giống như ví dụ sau đây:

#include <stdio.h>

int main(void) {
printf("Nhap so nguyen: ");

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

printf("Tong so nguyen voi 2: %d\n", num + 2);

return 0;
}

Màn hình nhập dữ liệu sẽ hiện ra như sau:
scanf int trong c

Nhập số thực trong C | scanf float trong c

Chúng ta sử dụng định dạng %f để nhập số thực trong C bằng hàm scanf() giống như ví dụ sau đây:

#include <stdio.h>

int main(void) {
printf("Nhap so thuc: ");

float num;
scanf("%f", &num);

printf("Tich so thuc voi 2 bang: %.2f\n", num * 2);

return 0;
}

Màn hình nhập dữ liệu sẽ hiện ra như sau:
scanf float trong c

Nhập nhiều dữ liệu cùng lúc trong C

Bằng cách chỉ định các dữ liệu nhập vào cách nhau bởi dấu phẩy và viết gộp các định dạng của chúng với nhau khi sử dụng hàm scanf() mà chúng ta có thể nhập nhiều dữ liệu cùng lúc trong C như sau.

Nhập dãy số trong C

Chúng ta viết định dạng các số được nhập trong chuỗi định dạng, cũng như giá trị các số nhập vào cách nhau bởi dấu phẩy, để nhập dãy số trong C bằng hàm scanf() giống như ví dụ sau đây:

#include <stdio.h>

int main(void) {
printf("Nhap day so: ");

int num1;
float num2;

scanf("%d%f", &num1, &num2);

printf("Tong 2 so: %.2f\n", num1 +num2);

return 0;
}

Màn hình nhập dữ liệu sẽ hiện ra như sau:
Nhập dãy số trong C

Nhập nhiều chuỗi trong C

Chúng ta viết lặp lại định dạng chuỗi %s và giá trị các số nhập vào cách nhau bởi dấu phẩy, để nhập nhiều chuỗi trong C bằng hàm scanf() giống như ví dụ sau đây:

#include <stdio.h>

int main(void) {
printf("Nhap cac chuoi: ");

char str1[16];
char str2[16];
char str3[16];

scanf("%s%s%s", &str1, &str2, &str3);

printf("Cac chuoi vua nhap: %d %d %d\n", str1 ,str2, str3);

return 0;
}

Màn hình nhập dữ liệu sẽ hiện ra như sau:
Nhập nhiều chuỗi trong C

Chỉ định số lần nhập dữ liệu trong C

Bằng cách sử dụng hàm scanf() để chỉ định số lần nhập dữ liệu, sau đó dùng vòng lặp cùng với hàm scanf() mà chúng ta có thể chỉ định số lần nhập dữ liệu trong C.

Ví dụ cụ thể, chúng ta viết chương trình nhập vào 1 dãy gồm n số nguyên như sau:

#include<stdio.h>
#include <stdlib.h>
#include<string.h>

int main(void) {
printf("Nhap so n = ");

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


/* Khai bao chuoi chua day so */
int num[n];

/* Nhap day so */
printf("\nHay nhap %d so vao chuong trinh\n",n);
for (int i=0;i<n;i++) {
printf("So thu %d= ", i+1);
scanf("%d", &num[i]);
}
printf("\nDay so da nhap:");
for (int i=0;i<n;i++) {
printf("%d ", num[i]);
}

return 0;
}

Màn hình nhập dữ liệu sẽ hiện ra như sau:
Viết chương trình nhập vào 1 dãy gồm n số nguyên trong C

Tổng kết

Trên đây Kiyoshi cùng bạn tìm hiểu về hàm scanf() và cách nhập dữ liệu 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.