Hỏi Về Sự Khác Nhau Giữa Getline Và tline Trong C++ Trang chủ » Cách Sử Dụng Cin.getline » Hỏi Về Sự Khác Nhau Giữa Getline Và tline Trong C++ Có thể bạn quan tâm Cách Sử Dụng Cin.ignore() Cách Sử Dụng Ckfinder Cách Sử Dụng Classroom Cách Sử Dụng Classroom Spy Professional Cách Sử Dụng Classroom Trên điện Thoại Hỏi về sự khác nhau giữa getline và cin.getline trong C++ programming c++ DwarfFungi (abcxyz) May 30, 2018, 9:32am #1 Chào các anh(chị, bạn) Em đang thắc mắc 1 vấn đề nhỏ giữa hàm getline và cin.getline trong c++ như sau: đầu tiền e có 1 chương trình sau: #include <iostream> #include <string> using namespace std; main() { string strTen; char strHo[50]; char cKitu; int iTuoi; cout <<"Nhap tuoi "; cin>> iTuoi; cout <<"Nhap ki tu "; cin.ignore(1); cin.get(cKitu); cout <<"Nhap ten "; fflush(stdin); getline(cin, strTen); cout <<"Nhap ho "; cin.getline(strHo,5); cout <<"Tuoi "<<iTuoi<<endl<<"Ki tu "<<cKitu<<endl<<"Ten "<<strTen<<endl<<"Ho "<<strHo<<endl; system("pause"); return 0; } trong chương trình có 2 biến string strTen; char strHo[50]; vấn đề e muốn hỏi là biến strTen được khai báo với kiểu dữ liệu string ( trong khai báo header string đã có typedef cho kiểu dữ liệu xâu nhưng e k biết nó typedef bao nhiêu phần tử cho xâu và cũng k rõ lắm về header string typedef như thế nào ?) khi dùng biến strTen với lênh sau thì vẫn ổn getline(cin, strTen); (chép hết dữ liệu từ stdin vào biến strTen) nhưng khi dùng biến strTen với lênh sau khi không được cin.getline(strTen,5); (cho phép nhập 5-1 kí tự vào xâu strTen) và ngược lại với biến strHo được khai báo char strHo[50]; thì dùng với lệnh sau thì ổn cin.getline(strHo,5); nhưng dùng với lệnh `getline(cin, strHo); thì lại k được kết: tại sao với biến khai báo : #include <string> string strTen; thì chỉ dung được với getline(cin, strTen); không dùng được với cin.getline(strTen,5); và ngược lại với khai báo biến char strHo[50]; thì chỉ dùng được với cin.getline(strHo,5); không dùng được với getline(cin, strHo); sự khác nhau ở đây là gì? tiện thể giải thích giúp e trong header string nó làm gì trong đó luôn ạ XINCAMON 2 Likes Khi nào dùng cin khi nào dùng getline? drgnz (Drgnz) August 20, 2015, 8:33am #3 Ngay trong reference của c++ cũng có nói rồi getline(ifstream& is, string& s) istream& getline (char* s, streamsize n ); Một cái chỉ dùng đc cho string, còn 1 cái dùng cho char. Thật ra cái getline(cin,string) là hàm đc overload lại từ hàm kia ^^ 5 Likes DwarfFungi (abcxyz) August 20, 2015, 8:38am #4 chỉ đơn giản là nó quy định 1 cái dùng cho string 1 cái dùng cho char à, bạn nói rõ hơn được không? ban có thể nói thêm về header string được không? tks bạn drgnz (Drgnz) August 20, 2015, 8:49am #5 header string là cái thư viện <string> đó bạn Còn 2 hàm trên đơn giản là hàm lấy các kí tự trên buffer đến khi gặp kí tự dừng (delim) thì nó dừng lại. Mặc định là kí tự \n Đối với cin.getline() thì nó hơi khác tí là nó phải có giới hạn. Khi quét đủ giới hạn rồi thì dừng. 3 Likes huudien1993 (Nguyễn Hữu Điền) June 9, 2020, 1:07pm #6 Phương thức cin.getline: istream& cin.getline(char *str, int n, char delim = '\n') Đọc dãy ký tự tính cả khoảng trắng vào bộ nhớ do str trỏ tới, quá trình đọc kết thúc khi gặp ký tự kết thúc chuỗi '\0' hoặc nhận đủ n-1 ký tự, ký tự Enter được loại bỏ không đưa vào dãy ký tự nhận được Ép kiểu cin.getline((char *)strTen.c_str(), 20); // Ép kiểu string sangchar getline(cin, (string)strHo); //Ép kiểu char sang string 5 Likes DwarfFungi (abcxyz) August 20, 2015, 9:43am #7 drgnz: header string là cái thư viện <string> đó bạn ý mình hỏi trong header này nó typedef như thế nào, kiểu dữ liệu string được khai báo ? phần tử …v.v.v.v ấy DwarfFungi (abcxyz) August 20, 2015, 9:48am #8 huudien1993: Phương thức cin.getline: istream& cin.getline(char *str, int n, char delim = ‘\n’)Đọc dãy ký tự tính cả khoảng trắng vào bộ nhớ do str trỏ tới, quá trình đọc kết thúc khi gặp ký tự kết thúc chuỗi ‘\0’ hoặc nhận đủ n-1 ký tự, ký tự Enter được loại bỏ không đưa vào dãy ký tự nhận được Ép kiểucin.getline((char *)strTen.c_str(), 20); // Ép kiểu string sangchargetline(cin, (string)strHo); //Ép kiểu char sang string (Y) tks bạn, rất chi tiết NagaiKei1234 (Sunwarder) June 9, 2020, 12:20pm #9 Mình không ép được kiểu char sang string. Nó pops out error: Error C2665: 'std::getline': none of the 2 overloads could convert all the argument types Error E0304: no instance of overloaded function "getline" matches the argument list khi dùng getline(cin,(string)strHo); như bạn. Mình include string file vào rồi. Bạn giúp mình với. Thanks nhiều rogp10 (rogp10) June 9, 2020, 1:13pm #10 Chắc ông trên chưa test rồi làm sao mà chạy được, dù ổn thì nó nhập vào cái string nào ấy chứ có vào mảng đâu. Cả hai câu đều có vấn đề. Mà sao lại dùng std::getline cho char* nhỉ, phương thức nó tự cắt cho mình mà. 2 Likes DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Cách Sử Dụng Cin.getline Cin.ignore Và tline Trong C++ [Wiki] Hàm Nhập Chuỗi, Ký Tự Getline Trong C/C++ - Dạy Nhau Học Hướng Dẫn Sử Dụng Getline Và Fget để Nhập Chuỗi Trong C++ Hàm tline() Không Dừng Màn Hình để Nhập Input Trong C++? Kiểu Ký Tự Trong C++ Là Gì? (Phần 2) - CodeLearn Cách Sử Dụng tline Và Setw() Trong C++ Như Thế Nào?? Sự Khác Biệt Giữa Getline Và Cin - Strephonsays Hàm Cin() Trong C / C++ - Freetuts Em Biết Sự Khác Nhau Giữa Cin Với Getline Là 1 Bên Không đọc được ... Cơ Bản Về Chuỗi Ký Tự Trong C++ (An Introduction To Std::string) Hàm Nhập Chuỗi, Ký Tự Getline Trong C/C++ - Diễn đàn Cin.ignore Và tline Trong C++ | Đất Xuyên Việt Top 20 Cách Dùng Getline Trong C++ Mới Nhất 2022 - Final Blade Sự Khác Biệt Giữa Getline Và Cin - Gấu Đây - Gauday