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

Đề tài: [ Solved ]Sự khác nhau giữa get() và getline()

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    5

    Mặc định [ Solved ]Sự khác nhau giữa get() và getline()

    Mọi người có thể giải thích cho mình sự khác nhau giữa get() và getline() ko?Mình thấy 2 hàm này cũng có tác dụng khá giống nhau

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    getline chỉ lấy được chuỗi còn get thì ngoài kiểu chuỗi nó còn lấy được nhiều kiểu dữ liệu khác nữa.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    _ cú pháp getline: istream& cin.getline(char *str,int n,char delim = '\n');
    nhận 1 chuỗi ký tự từ bàn phím lưu vào str, kết thúc khi gặp phím delim (Enter (\n) theo mặc định) hoặc khi đã nhận n-1 kí tự. kí tự delim ko còn trên dòng nhập.
    _ cú pháp get:
    cin.get(); đọc 1 ký tự kể cả khoảng trắng, cách dùng char ch=cin.get()
    istream& cin.get(char &ch); giống dạng 1, cách dùng cin.get(ch)
    istream& cin.get(char *str,int n,char delim ='\n'); giống getline kí tự delim vẫn còn trên dòng nhập.
    Đã được chỉnh sửa lần cuối bởi 6220119 : 01-08-2008 lúc 08:33 AM.

  4. #4
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    cin.get là cin.getline là khá giống nhau chỉ khác điều là nếu dùng cin.get thì cần thêm cin.ignore để xóa bộ đệm còn cin.getline thì đã tích hợp sẵn luôn

  5. #5
    Ngày gia nhập
    08 2008
    Bài viết
    28

    Mình đã thử và thấy trong cả 2 trường hợp cin.get(..) và cin.getline() đều không lấy kí tự xuống dòng '\n' .
    Vậy khi ta xuất ra 1 xâu thì dùng cấu trúc bình thường cout<< thôi à ? có lệnh nào tương tự puts(char*) của C Ansi không nhỉ ?

  6. #6
    Ngày gia nhập
    12 2006
    Bài viết
    72

    Mặc định [ Solved ]Sự khác nhau giữa get() và getline()

    Trích dẫn Nguyên bản được gửi bởi aMember Xem bài viết
    Mình đã thử và thấy trong cả 2 trường hợp cin.get(..) và cin.getline() đều không lấy kí tự xuống dòng '\n' .
    Vậy khi ta xuất ra 1 xâu thì dùng cấu trúc bình thường cout<< thôi à ? có lệnh nào tương tự puts(char*) của C Ansi không nhỉ ?
    Bạn hãy đọc thêm lý thuyết xem, mình thấy đâu có hàm nào lấy được kí tự xuống dòng đâu? "\n " gọi là định dạng văn bản xuất.

  7. #7
    Ngày gia nhập
    08 2008
    Bài viết
    28

    Trích dẫn Nguyên bản được gửi bởi thangtran Xem bài viết
    Bạn hãy đọc thêm lý thuyết xem, mình thấy đâu có hàm nào lấy được kí tự xuống dòng đâu? "\n " gọi là định dạng văn bản xuất.
    Mình nghĩ lấy hay không chỉ khác nhau có 1 dòng code, đâu có chuyện lấy được hay không lấy được, chắc là không thích lấy thôi. :d

  8. #8
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    - Dùng cho char* some_data thì 2 thằng giống nhau hoàn toàn. Cậu 6220119 đã ghi rõ ra hết rồi đó.
    - Riêng thằng get() nó có thêm vài overloading ( dùng cho single character chẳng hạn )
    cin.get()
    C++ Code:
    1. stream::get( char *, int, char );
    2. istream::get( unsigned char *, int, char );
    3. istream::get( char & );
    4. istream::get( unsigned char & );
    5. istream::get( signed char & );
    6. istream::get( signed char *, int, char );
    7. istream::get( streambuf &, char );
    8. istream::get()
    cin.getline()
    C++ Code:
    1. istream::getline( char *, int, char );
    2. istream::getline( unsigned char *, int, char );
    3. istream::getline( signed char *, int, char );

  9. #9
    Ngày gia nhập
    02 2008
    Nơi ở
    Future
    Bài viết
    25

    Trích dẫn Nguyên bản được gửi bởi coder_gate Xem bài viết
    cin.get là cin.getline là khá giống nhau chỉ khác điều là nếu dùng cin.get thì cần thêm cin.ignore để xóa bộ đệm còn cin.getline thì đã tích hợp sẵn luôn
    Code:
    #include<iostream>
    #include<string>
    using namespace std;
    
    void main()
    {
    	char kytu[10];
    	int so;
    	cin>>so;
    //	cin.ignore();
    	cin.getline(kytu,10);
    }
    Sao mình test thì nếu ko có cin.ignore thì cin.getline vẫn ko nhập được ký tự mà bạn !
    Bể học mênh mông , quay đầu ....là bờ !

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

  1. Sự khác nhau giữa toán tử >> và get(), getline(), getignore().
    Gửi bởi LionelMessi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 02-06-2010, 07:38 AM
  2. [ Solved ]Tại sao lại khác nhau khi chuyển stream?
    Gửi bởi bvKim trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 11-11-2008, 08:49 AM
  3. [ Solved ]Tạo số ngẫu nhiên không trùng nhau
    Gửi bởi jacking_nguyen1 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 31
    Bài viết cuối: 23-09-2008, 06:41 PM
  4. [ Solved ]Giúp đỡ tôi cách loại các phần tử mảng trùng nhau
    Gửi bởi md_vn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 25-08-2008, 09:45 PM
  5. [ Solved ]Loại bỏ những số trùng nhau, làm cách nào dễ hiểu nhất?
    Gửi bởi ilovebeckham trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 22
    Bài viết cuối: 27-03-2008, 12:58 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