[Wiki] Hàm Nhập Chuỗi, Ký Tự Getline Trong C/C++ - Dạy Nhau Học Trang chủ » Cách Sử Dụng Getline » [Wiki] Hàm Nhập Chuỗi, Ký Tự Getline Trong C/C++ - Dạy Nhau Học Có thể bạn quan tâm Cách Sử Dụng Getline Trong C++ Cách Sử Dụng Get Link Fshare Cách Sử Dụng Getresponse Cách Sử Dụng Getresponse 2021 Cách Sử Dụng Getresponse Compa Marketing [Wiki] Hàm nhập chuỗi, ký tự getline trong C/C++ share writes wiki c c++ Honey_moon (Thực tế khắc nghiệt) December 10, 2015, 1:29am #1 Hàm getline Khi sử dụng phải khai báo thư viện string. Đối với C++ : cấu trúc : getline(std::cin,<bien>); Định nghĩa : thuộc lớp namespace std. Có chức năng nhận các thông tin từ bàn phím qua hàm ( std::cin ) sau đó chuyền vào biến chỉ định. ví dụ : Hãy xuất ra ngoài 1 biến trong đó sở hữu tên của bạn từ bàn phím. #include<iostream> #include<string> using namespace std; int main() { string ten; cin.ignore(); // thêm vào để xoá bộ nhớ đệm, tránh bị trôi lệnh cout<<"Nhap ten cua ban : "<<endl; getline(std::cin,ten); cout<<"xin chao ban "<<ten<<" den voi ngon ngu lap trinh c/c++!!!"<<endl; return 0; } Lời khuyên : hàm getline sử dụng dưa trên việc thông qua lưu trữ giá trị hàm cin nhận vào. Ở đây cin chỉ nhận từng lần nhập liệu sau đó sẽ kết thúc khi gặp khoảng trắng hay xuống hàng. vì thế getline lưu trư toàn bộ thông tin và truyền vào biến. Lưu ý : Việc sử dụng hàm getline có thể gây mất biến khi nhấn enter nghĩa là nếu bạn tạo 1 biến có giá trị số sau đó bạn getline và in 1 chuỗi ký tự. Nên xoá bộ nhớ đệm trước khi getline để tránh lỗi. std::fflush(stdin); ###C Thư viện < stdio.h> cấu trúc ssize_t getline(char ** ptr, size_t *n,FILE * stream); Trong C thì nó sẽ đọc 1 dòng. Nếu *n < số kí tự( bao gồm ‘\n’) thì nó sẽ gọi realloc *ptr và thay đổi *n. giá trị trả về là số kí tự được đọc. Hoặc nếu có lỗi sẽ trả về -1 16 Likes Làm thế nào để Chuỗi Kí Tự STRING nhận Chuỗi Ký Tự Có Dấu Cách Các thao tác cơ bản với mảng kí tự Tổng hợp - Open source project - Wiki posts - C/C++ Lang_Khach (Người Cô Đơn) November 29, 2014, 2:34pm #2 Hay á.Đúng cái đang cần.Mình đang tính chạy thử so sánh hàm getline với hàm gets nhưng tắm cái đã. ^^! Thanks bạn Honey_moon (Thực tế khắc nghiệt) November 29, 2014, 2:46pm #3 Lang_Khach: Hay á.Đúng cái đang cần.Mình đang tính chạy thử so sánh hàm getline với hàm gets nhưng tắm cái đã. ^^! Thanks bạn nếu thấy hay thì cùng tạo ra nhiều thư viện nhỏ như này đi heng. hỳ hỳ! welcome!!! 2 Likes TTmagic (TTmagic) November 29, 2014, 3:02pm #4 không nhầm thì hàm getline làm việc với biến kiểu string, còn gets làm việc với biến kiểu con trỏ hoặc mảng ký tự, đúng k nhỉ ? 2 Likes Honey_moon (Thực tế khắc nghiệt) November 29, 2014, 3:03pm #5 TTmagic: không nhầm thì hàm getline làm việc với biến kiểu string, còn gets làm việc với biến kiểu con trỏ hoặc mảng ký tự, đúng k nhỉ ? wiki lên có thể sửa nhé ! hỳ hỳ mọi người cùng hoàn thiện mà TTmagic (TTmagic) November 29, 2014, 3:04pm #6 câu hỏi và câu trả lời không liên quan =)) Honey_moon (Thực tế khắc nghiệt) November 29, 2014, 3:12pm #7 TTmagic: câu hỏi và câu trả lời không liên quan =)) thấy sai hay thiếu xót thì mọi ng có quyền sửa nhé đâu ai nỡ thấy sai mà để vậy coi sao được viendongshop (viễn đông) March 25, 2015, 7:51am #8 Thank bạn đã chia sẽ nhé Mình viết socket cho client/server mà không hiểu hàm này.hihi maiquan (maivanquan) June 23, 2015, 3:32pm #9 mọi người ơi, sao em dùng hàm cin.getline toàn bị lỗi ấy, ngẫm nghĩ 1 ngày rồi mà ko ra vấn đề , mn chỉ em, em dùng visual studio đây là code ạ #include <iostream> #include <conio.h> #include <iomanip> #include <string.h> using namespace std; typedef struct hanghoa { int stt; int soluong; int dongia; int thanhtien; }; hanghoa x; void main() { int n,i; cout << "so luong hang hoa can nhap:" << endl; cin >> n; for(i=0;i<n;i++) { cout << "stt:"; fflush(stdin); std::cin.getline(x.stt,n);//cai n này là gì ạ, em ko hiểu lắm, thấy mẫu nên cứ làm theo cout << "so luong:"; cin.getline(x.soluong,n) ; cout << "don gia:"; cin.getline(x.soluong,n); x.thanhtien=x.dongia*x.soluong; cout << "thanh tien:"<< x.thanhtien << endl ; } cout << "danh sach hang hoa:" << endl; cout<<setiosflags(ios::showpoint)<<setprecision(4); for(i=0;i<n;i++) { cout.setf(ios::left); cout << "|" << setw(5) << x.stt ; cout << "|" << setw(7) << x.soluong; cout << "|" << setw(7) << x.dongia; cout << "|" << setw(7) << x.thanhtien << "|" << setw(4) << endl; } system("pause"); } nó hiện lỗi này ạ Error: No instance of overloaded function “std::basic_istream<_Elem,_Traits>::getline[with_Elem=char,_Traits=std::char_traits]” matches the argument list" em cảm ơn maiquan (maivanquan) June 23, 2015, 3:41pm #10 @Honey_moon giúp em với sanegan199x (Nguyễn Văn Tâm) June 23, 2015, 3:45pm #11 cin.getline sao lại đọc vào biến x kiểu int. cin.getline( char* , int size ) chứ 1 Like maiquan (maivanquan) June 23, 2015, 3:55pm #12 woah, mình muốn hiển thị kết quả ra theo kiểu | “stt” | “soluong” | “đơn giá” | thành tiền " | theo kiểu danh sách ấy. nếu dùng kiểu khác int thì mình ko biết dùng kiểu dữ liệu gì để có thể dùng phép tính " x.thanhtien=x.dongia*x.soluong; " help me! sanegan199x (Nguyễn Văn Tâm) June 23, 2015, 4:00pm #13 Nhập dữ liệu cho biến int thì dùng cin chứ. cin>>x.stt , mà sao có 1 biến struct x mà lai dùng for nhỉ 1 Like maiquan (maivanquan) June 23, 2015, 4:03pm #14 biến đó dùng để gọi các biến trong struct mà, nếu dùng thằng cin thì cái bảng kết quả của mình nó chỉ hiển thị 1 list toàn giá trị của mặt hàng nhập cuối cùng thôi, maiquan (maivanquan) June 23, 2015, 4:16pm #15 thank bạn @sanegan199x nhá , hehe, mình đã hiểu ra và sửa thành công To_Dinh_Vin (Tô Đình Vin) February 27, 2016, 1:40pm #16 có bạn nào chỉ mình cách chiaw class trong dev c++ ko congtuyen7 (Công Tuyền Lê) December 12, 2017, 11:57am #17 hai cái xóa bộ nhớ đệm là fflush(stdin); và cin.ignore(); giống và khác nhau như thế nào nhỉ? vì mình để fflush(stdin); thì nó trôi lệnh không getline được, nhưng thay bằng cin.ignore(); thì lại có thể getline được !?? rogp10 (rogp10) December 12, 2017, 12:11pm #18 congtuyen7: hai cái xóa bộ nhớ đệm là fflush(stdin); và cin.ignore(); giống và khác nhau như thế nào nhỉ? cin.ignore() là chuẩn (lưu ý: viết ntn không triệt để), còn fflush(stdin) không phải chuẩn, và đã bị rút bỏ khỏi VS 2015 trở về sau. 2 Likes congtuyen7 (Công Tuyền Lê) December 12, 2017, 12:36pm #19 đúng rồi ạ! e đang dùng VS 2017 fflush(stdin) không thể dùng được. @rogp10 e hỏi thêm nếu viết triệt để là như thế nào luôn ạ cungtrang0978 (Nguyễn Văn Thắng) March 14, 2019, 12:38pm #20 vậy làm sao để nhập số sau khi nhập chuỗi ạ? next page → 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 Getline Hướng Dẫn Sử Dụng Getline Và Fget để Nhập Chuỗi Trong C++ Nhập Xuất String Trong C++ Hướng Dẫn Sử Dụng Getline Và Fget để Nhập Chuỗi Trong C++ Cơ Bản Về Chuỗi Ký Tự Trong C++ (An Introduction To Std::string) Cách Sử Dụng tline Và Setw() Trong C++ Như Thế Nào?? Kiểu Ký Tự Trong C++ Là Gì? (Phần 2) - CodeLearn Top 20 Cách Dùng Getline Trong C++ Mới Nhất 2022 - Final Blade C++ — Sử Dụng Getline () Trong C ++ Sử Dụng Getline () Trong C ++ - HelpEx Hàm Nhập Chuỗi, Ký Tự Getline Trong C/C++ - Diễn đàn [C++] Cách Sử Dụng Getline Và Fflush Hàm tline() Không Dừng Màn Hình để Nhập Input Trong C++? Hàm Getline () Trong C ++ - Hỏi Về Sự Khác Nhau Giữa Getline Và ... Sự Khác Biệt Giữa Getline Và Cin - Strephonsays