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

Đề tài: Cho hỏi cách chặn không bị tràn bộ nhớ lệnh cin.getline

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

    Mặc định Cho hỏi cách chặn không bị tràn bộ nhớ lệnh cin.getline

    Cho mình hỏi có cách nào chặn không cho bị tràn bộ nhớ khi mình đánh quá số ký tự cho phép của lệnh cin.getline khi nhập 1 mảng ko?
    Cho mình hỏi thêm làm thế nào để chặn không cho nhập chữ vào những biến kiểu như: int, float, double... ?
    Cám ơn nhiều nhá.
    Đã được chỉnh sửa lần cuối bởi puyoberry : 24-12-2007 lúc 04:33 PM.

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

    Bạn nhập cin.getline(str,len) thì nó sẽ chỉ nhận xâu kí tự với len kí tự đầu tiên
    -chặn không cho nhập chữ vào những biến kiểu như: int, float, double thì bạn lấy vào 1 xâu, nếu sai bắt nhập lại chứ không chặn được?

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

    Trích dẫn Nguyên bản được gửi bởi metal_shield Xem bài viết
    Bạn nhập cin.getline(str,len) thì nó sẽ chỉ nhận xâu kí tự với len kí tự đầu tiên
    -chặn không cho nhập chữ vào những biến kiểu như: int, float, double thì bạn lấy vào 1 xâu, nếu sai bắt nhập lại chứ không chặn được?
    cấu trúc cin.getline thì tất nhiên là cin.getline(str,len) rồi. nhưng nếu nhập quá len thì dần đến tràn bộ nhớ. hỏng chương trình.
    Cái nhập chữ kia cũng tương tự. Bạn khắc phục đc thì xin chỉ giáo. Cám ơn nhiều.
    Đã được chỉnh sửa lần cuối bởi puyoberry : 24-12-2007 lúc 08:24 PM.

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

    Trích dẫn Nguyên bản được gửi bởi puyoberry Xem bài viết
    cấu trúc cin.getline thì tất nhiên là cin.getline(str,len) rồi. nhưng nếu nhập quá len thì dần đến tràn bộ nhớ. hỏng chương trình.
    Cái nhập chữ kia cũng tương tự. Bạn khắc phục đc thì xin chỉ giáo. Cám ơn nhiều.
    Nhập đến quá len ko bị tràn bộ nhớ, nó vẫn lưu chỉ lưu len kí tự vào xâu thôi mà.
    Còn cái nhập số interger, hay float thì ko có cách nào khắc phục. Ví dụ người dùng nhập n = a123, bạn đưa ra thông báo nhập lại thì đựoc.

  5. #5
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Bạn tự viết function getline cũng được. Trong hàm này bạn tạo mảng temp khoảng 1000 chars để chứa tạm, sau khi prompt user nhập xong bạn copy qua mảng chính thức và return về mảng này.
    Keep moving forward!

    ... Retired ...

  6. #6
    Ngày gia nhập
    11 2008
    Bài viết
    3

    Mặc định Cho hỏi cách chặn không bị tràn bộ nhớ lệnh cin.getline

    ve chặn không cho nhập chữ vào những biến kiểu như: int, float, double... ?
    ban lam the nay nhe:
    int x;
    while (!cin>>x)
    {clear()
    cin.ignore(80,'\n');
    }

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

  1. Bài tập C Lỗi nhập dữ liệu cin.getline
    Gửi bởi delta3105 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 12
    Bài viết cuối: 13-10-2013, 11:05 PM
  2. Lệnh tương đương với getline() trong C++ ??
    Gửi bởi kwideur trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 11-10-2013, 08:41 AM
  3. Lập trình C++ Lỗi cin.getline();
    Gửi bởi mrtyoffline trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 03-10-2011, 08:59 PM
  4. Kỹ thuật C++ cin.getline không hoạt động được
    Gửi bởi datinh_o0o7 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 10-02-2011, 07:39 PM
  5. Phân biệt cin.get() và cin.getline()
    Gửi bởi trungthuan 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: 23-07-2010, 10:42 AM

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