Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Hàm Scanf và Gets khác nhau như thế nào?

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    29

    Question Hàm Scanf và Gets khác nhau như thế nào?

    Sự khác nhau của 2 cái này ra sao vậy các bạn ?

  2. #2
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Ừm 2 cái này khác nhau ở chỗ với hàm scanf ta dùng để nhập liệu với giá trị nhập là số thực ,số nguyên ,double , ký tự và chuỗi nhưng khi sử dụng với chuỗi thì ta có 2 cách nhập sau :
    Code:
    scanf("%c",&a);
    cách nhập trên là cách nhập với 1 ký tự và ta dùng toán tử & để nhập giá trị và biến a .
    Còn cách nhập dưới đây để nhập giá trị vào khi là chuỗi:
    Code:
    scanf("%s",a);
    ở đây giá trị của a là mảng chứ ko phải là ký tự nữa rồi nhưng dùng scanf rất khó nhập chuỗi vì nó khó lưu dấu cách .Với chuỗi như "anh nho em" thì nó sẽ không thể lưu được dấu cách nên chỉ lưu được đến từ anh là dừng thôi còn nếu muốn lưu dấu cách bạn sẽ phải dùng kỹ thuật sau:
    Code:
    scanf("%[^\n]",a);
    cách trên dùng để lưu cả dấu cách chỉ khi nào bạn ấn enter chuỗi mới dừng việc lưu lại mà thôi.

    Đối với gets ta chỉ dùng nó để nhập chuỗi và nó có thể nhập được cả dấu cách mà ko phải thao tác quá nhiều như scanf.
    Code:
    gets(a);

  3. #3
    Ngày gia nhập
    12 2007
    Bài viết
    29

    thx comeonbaby nhiều ^^

  4. #4
    Ngày gia nhập
    04 2011
    Bài viết
    6

    Thanhs bạn nhiều !!!

  5. #5
    Ngày gia nhập
    12 2010
    Bài viết
    129

    Trích dẫn Nguyên bản được gửi bởi trinitrotoluen Xem bài viết
    Sự khác nhau của 2 cái này ra sao vậy các bạn ?
    scanf :
    Là hàm có chức năng đọc thông tin từ thiết bị vào chuẩn ( bàn phím) và lưu trữ vào bộ nhớ theo các địa chỉ xác định.
    Hàm scanf để lại stdin ký tự '\n'. kí tự này sẽ làm trôi hàm gets hoặc getchar ngay sau đó
    Nếu bạn nhập scanf sau đó dùng gets phía sau nó thì bạn chèn giữa là fflush(stdin) để làm sạch stdin
    Ví dụ
    C Code:
    1. printf("Nhap tuoi:"); scanf("%d",&tuoi);
    2. printf("Nhap ho ten:"); fflush(stdin);
    3. gets(ten);
    Chi tiết về hàm scanf thì bác @comeonbaby nêu rõ rồi
    gets
    Là hàm nhập một chuỗi kí tự từ stdin (stdin là dòng vào chuẩn từ bàn phím)
    Dạng : char *gets(char *s);
    Công dụng : Nhận dãy kí tự từ stdin cho đén khi gặp"\n". và kí tự "\n" được loại khỏi stdin nhưng không được đặt vào chuỗi. Chuỗi được bổ sung thêm kí tự kết thúc"\0" và đặt vào vùng nhớ do con trỏ s trỏ tới
    Hỏi một câu thì chỉ dốt trong chốc lát.
    Nhưng nếu không hỏi thì bạn sẽ dốt suốt đời.

    ƯỚC MƠ VẪN CHỈ LÀ ƯỚC MƠ NẾU CHỈ BIẾT ƯỚC MƠ MÀ KHÔNG CÓ SỰ NỖ LỰC

  6. #6
    Ngày gia nhập
    04 2011
    Bài viết
    81

    Mặc định Hàm Scanf và Gets khác nhau như thế nào?

    bạn cũng có thể xài thư viện readline cũng được
    live free or die
    phamthechung0@gmail.com

  7. #7
    Ngày gia nhập
    05 2013
    Bài viết
    7

    Red face Thaks!

    Mình cũng đang thắc mắc chỗ này
    Cả hàm printf vs puts cũng thế

  8. #8
    Ngày gia nhập
    11 2010
    Bài viết
    589

    fLập trình C/C++ thì nên quên khẩn trương hai hàm này đi. Đến một lúc nào đó cần nhập xuất nhiều thì mới thấy 2 hàm này nó gây ra đủ thứ rắc rối và nguy hiểm như thế nào.
    Có loạt bài này đọc cho biết: http://www.gidnetwork.com/b-56.html

    Things to Avoid in C/C++ -- gets() , Part 1
    Things to Avoid in C/C++ -- fflush(stdin), Part 2
    Things to Avoid in C/C++ -- feof(), Part 3
    Things to Avoid in C/C++ -- scanf, Part 5
    Things to Avoid in C/C++ -- scanf / character, Part 6
    Things to Avoid in C/C++ -- system("pause"), Part 4
    Things to Avoid in C/C++ -- scanf / string, Part 7
    Things to Avoid in C/C++ -- scanf / number, Part 8
    Things to Avoid in C/C++ -- scanf / epilogue, Part 9
    Things to Avoid in C/C++ -- void main(), Part 10

Các đề tài tương tự

  1. Lệnh scanf và fflush(stdin) có tác dụng thế nào?
    Gửi bởi lovedtn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 08-10-2013, 10:02 AM
  2. Kỹ thuật C ấn định thời gian nhập xâu bằng scanf như thế nào?
    Gửi bởi chelsea trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 10-11-2010, 01:00 PM
  3. scanf và scanf_s khác nhau thế nào?
    Gửi bởi inferno trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 27-02-2010, 07:56 PM
  4. Thắc mắc về lệnh Printf và Scanf
    Gửi bởi Mr.Phong trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 03-08-2008, 09:03 PM
  5. Lập trình C | Sự khác nhau giữa cscanf, cprintf và scanf, printf
    Gửi bởi whamy04 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 06-01-2007, 10:51 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn