Hỏi cách giới hạn dữ liệu đầu vào trong C

#include<stdio.h>
int main()
{
	float a;
	scanf("%.f",&a);
	printf("%.0f",a);
	return 0;
}

Cách giới hạn dữ liệu đầu vào trong C thì làm thế nào nhỉ? Ví dụ cụ thể là input 1 số thập phân giới hạn phần thập phân ít hơn 5 chữ số thì phải làm sao nhỉ? Mình newbie mong ae chỉ giáo cần bổ sung gì

  1. xác định giá trị nhập có hợp lệ hay không
    Đơn giản thì chỉ cần check chuỗi người ta nhập, đúng thì chuyển nó thành số, sai thì…
  2. Nhập không hợp lệ thì sao?
3 Likes

Cụ thể hơn một xíu được không bro, tôi chưa hiểu ý ông cho lắm

newbie nên còn hơi lơ ngơ

vậy bạn có biết bản thân muốn gì chưa?

ví dụ người dùng nhập 12.345678 thì kết quả sẽ là gì? 12.345 thì kết quả là gì? (ở đây hỏi là chương trình của bạn sẽ như thế nào sau khi nhập như vậy)

và bạn nhìn vào thì 12.345678, 12.345 có hợp lệ không? và lý do?

2 Likes

Cái này tuỳ thuộc vào yêu cầu, và cậu buộc phải tự cài đặt giới hạn của cậu.
Ví dụ dưới đây là cách cậu giới hạn đầu vào chỉ là một số nguyên:

int getInt() {
  int result;

  while(scanf("%d", &result) != 1) {
    printf("This is not an integer number. Give me another: ");
    while(getchar() != '\n');
  }

  return result;
}

Có lẽ cậu cần tự implement lấy phần kiểm tra đó :smile: Cậu không giới hạn độ chính xác phần thập phân với scanf được đâu :smile:

Hope it helps!

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?