01/10/2018, 10:19

Muốn người dùng nhập vào số mà không được nhập chữ thì làm như thế nào?

Bạn ơi giúp mình vs
Mình muốn người dùng nhập vào số mà k dc nhập chữ thì làm ntn

Khoa NTA viết 12:32 ngày 01/10/2018

Không muốn người dùng nhập chữ thì báo lỗi chứ sao và chuyển sang nhập chuỗi, kiểm tra chuỗi có phải toàn ký tự số hay không rồi chuyển chữ thành số là xong.

2D_team_free_online_Education viết 12:30 ngày 01/10/2018

trong C++ thì có hàm cin. good hay sao đấy , còn trong C thì chắc quy rq hệ ASCII

phan anh xuân viết 12:28 ngày 01/10/2018

mình đang tập tành code ở trong C nên chưa biết nhiều hàm các bạn chỉ tui thêm mấy cái hàm nhập chuỗi và kiểm tra chuỗi có phải số ntn vs

Dark.Hades viết 12:25 ngày 01/10/2018

Thực ra những câu hỏi dạng này bạn chuyển sang tiếng anh rồi hỏi anh google anh ấy hỗ trợ nhiệt tình hơn:

int num;
char term;
if(scanf("%d%c", &num, &term) != 2 || term != '\n')
    printf("failure\n");
else
    printf("valid integer followed by enter key\n");

nếu muốn nhập liên tục bạn nên cho vào hàm while

phan anh xuân viết 12:28 ngày 01/10/2018

int num;
char term;
if(scanf("%d%c", &num, &term) != 2 || term != ‘\n’)
printf(“failure\n”);
else
printf(“valid integer followed by enter key\n”);

cảm ơn mà bạn cho tui hỏi sao lại cho num và term khác 2 số 2 ở đây nghĩa là gì có phải số 2 đại diện cho con số ko. Theo tui hiểu có phải là nếu bạn nhập num và term khác số hoặc term khác enter thì hiện failure phải ko

Dark.Hades viết 12:19 ngày 01/10/2018

Trong lập trình, đa số hàm được xây dựng sẽ có return, đối với scanf nó sẽ trả về số lượng những biến được gán giá trị thành công.
Ở code này mục đích sẽ kiểm tra nhập vào từ bàn phím, biến num chỉ nhận int, nếu có 1 giá trị khác nó sẽ nhảy vào term
Vì bạn chỉ muốn người dùng nhập số nên bắt buộc biến rơi vào term phải là kí tự Enter \n
=> nếu biến term mà không phải kí tự \n thì người dùng đã nhập kí tự.

Bài liên quan
0