Hướng Dẫn Sử Dụng Getline Và Fget để Nhập Chuỗi Trong C++
Có thể bạn quan tâm
Nếu bạn đang gặp vấn đề trong việc nhập giá trị trong C++? Green House sẽ hướng dẫn bạn cách sử dụng hàm getline() và fget() trong việc nhập giá trị trong c++ mà không bị trôi lênh, hoặc bị lỗi. Để giải quyết vấn đề về xuất nhập chuỗi trong C++ có thể xem qua bài viết này. Chỉ với 3 phút đọc bài viết, bạn có thẻ sử dụng getline và fget để nhập dữ liệu trong C++.
Hướng dẫn Cách nhập chuỗi trong c++ dùng hàm getline:
Cú pháp: getline(std::cin, name);
Lưu ý trước khi dùng câu lệnh getline thì bạn phải khai báo thư viện string.
Đây là ví dụ về khai báo thư viện string và sử dụng getline
#include <iostream> #include<string> using namespace std; int main() { string s; getline(cin, s); cout <<s <<"Ban vua nhap la: " <<endl; system("pause"); return 0; }Sau khi chạy chương trình thì mình nhập vào xin chao cac ban
xin chao cac ban Ban vua nhap la: xin chao cac banĐối với nhập 1 giá trị thì không bị trôi lệnh, nhưng khi bạn nhập nhiều chuỗi hãy đề phòng bị trôi lệnh. Mình sẽ giải thích cho các bạn các tình huống bị trôi lệnh và làm cách nào để khắc phục điều này. Các bạn hãy xem qua mẫu ví dụ sau
#include <iostream> #include<string> using namespace std; int main() { int tuoi; string ten; cin >> tuoi; getline(cin, ten); cout <<"Tuoi: "<< tuoi<<endl; cout << "Ten: " << ten << endl; system("pause"); return 0; }Sau đó các bạn chạy code, và nhập giá trị
15 Tuoi: 15 Ten:Sau khi nhập số 15 thì không thể nhập được chuỗi và chương trình tự kết thúc. Lí do là sau khi nhập 15 bạn nhấn phím enter thì bộ nhớ đệm sẽ lưu hai giá trị là 15 và ‘/n’ (máy tính hiểu là kí tự xuống hàng). Nó sẽ gắn giá trị 15 cho biến tuoi và giá trị ‘/n’ cho chuỗi ten. Để khắc phục điều này thì trước khi nhập chuỗi ta phải xóa bộ nhớ đệm bằng câu lệnh cin.ignore Cách sử dụng câu lênh cin.ignore
#include <iostream> #include<string> using namespace std; int main() { int tuoi; string ten; cin >> tuoi; cin.ignore; //Dùng để xóa bộ nhớ đệm getline(cin, ten); cout <<"Tuoi: "<< tuoi<<endl; cout << "Ten: " << ten << endl; system("pause"); return 0; }Và đây là kết quả sau khi dung câu lệnh cin.ignore
15 tam Tuoi: 15 Ten: tamVậy qua ví dụ này các bạn đã hiểu rõ thế nào là bị trôi biến, bị trôi chuỗi khi nhập liệu trong C++.
Cách nhập chuỗi trong c++ dùng hàm gets
Nếu bạn khai báo là một con trỏ char hay một mảng char thì bạn có thể dùng hàm gets() để nhập. Ví dụ cách sử dụng hàm gets()
#include <iostream> #include<string> using namespace std; int main() { char *s = new char[100]; gets(s); //Dùng để nhập cout <<"Ban vua nhap la: "; cout << s; system("pause"); return 0; }Nhưng nếu bạn biên dịch chương trình trên bằng Visual Studio thì sẽ bị lỗi ngay. Lý do bị lỗi là chương trình không thể biết bạn nhập bao nhiêu kí tự. Vì vậy bạn có thể nhập bằng hàm fgets() thay vì hàm gets() .
Cú pháp nhập: fgets( name, count, file) trong đó
- name là tên biến cần nhập.
- count là số kí tự tối đa nhập vào.
- file là tên file cần nhập, trong trường hợp này ta sẽ dùng stdin.
Tham khảo ví dụ nhập chuỗi trong C++ sau:
#include <iostream> #include<string> using namespace std; int main() { char* s; s = new char[100]; fgets(s, 100, stdin); cout << "Ban vua nhap la: "; cout << s; system("pause"); return 0; }Và dưới đây là kết quả
xin chao Ban vua nhap la: xin chaoVậy mình vừa hướng dẫn xong các bạn cách nhập chuỗi trong C++ bằng 2 cách getline và fget()
Từ khóa » Cách Sử Dụng Cin.getline
-
Cin.ignore Và tline Trong C++
-
Hỏi Về Sự Khác Nhau Giữa Getline Và tline Trong C++
-
[Wiki] Hàm Nhập Chuỗi, Ký Tự Getline Trong C/C++ - Dạy Nhau Họ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