Cho mình hỏi vấn đề về chuỗi:
Đây là code mình dùng để nhập chuỗi cho 2 biến “name_a” và “name_b”:
#include "iostream"
#include "string.h"
using namespace std;
int main()
{
char name_a[100];
cout << "Write name a: ";
cin.getline(name_a,100);
cout << "Name a: " << name_a << endl;
string name_b;
cout << "Write name b: ";
getline (cin,name_b);
cout << "Name b: " << name_b << endl;
return 0;
}
Thì output xuất ra như sau:
Write name a: Thanh Tai
Name a: Thanh Tai
Write name b: Quang Minh
Name b: Quang Minh
Nhưng nếu mình thay dòng code cin.getline(name_a,100) thành cin << name_a như sau:
#include "iostream"
#include "string.h"
using namespace std;
int main()
{
char name_a[100];
cout << "Write name a: ";
//cin.getline(name_a,100);
cin >> name_a;
cout << "Name a: " << name_a << endl;
string name_b;
cout << "Write name b: ";
getline (cin,name_b);
cout << "Name b: " << name_b << endl;
return 0;
}
Thì output xuất ra sẽ bị lỗi như thế này:
Write name a: Thanh Tai
Name a: Thanh
Write name b: Name b: Tai
Mình không hiểu sự khác biệt trong việc dùng cin và getline() cho chuỗi string như thế nào lại dẫn đến việc xuất ra hai output khác nhau?
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?