30/09/2018, 17:05

[C++] get chuỗi có cả khoảng trắng trong operator >>

Bình thường thì để nhập 1 chuỗi có cả space em dùng

 cin.getline(x.name, 20);

Nhưng ở 1 bài tập, em phải dùng nó trong hàm nạp chồng

 istream& operator >> (istream& is, INFO &x){
        cout << "Ho va ten/NAME: " ;           is >>x.name;

Như thế này thì không nhap được cả họ và tên (có space)
em muốn hỏi cách làm như thế nào ạ
name em để kiểu string có ổn không ạ

Thu Thuỷ viết 19:07 ngày 30/09/2018

Name có khoảng trắng sao bạn lại dùng is chứ? uhm thì istream bây h là is, nhưng chuỗi thì dùng is.getline(), hay getline() để nhận khoảng trắng

Vu Xuan Loc viết 19:11 ngày 30/09/2018

Mình thử cả

is.getline(x.name, 20);
is.getline(x.name);
getline(x.name, 20);
getline(x.name);

đều không được nên mới để vậy cho chương trình chạy tạm

Thu Thuỷ viết 19:13 ngày 30/09/2018

mình thì ko có dùng kiểu string nên ko rành ( trong trường chỉ sd những kiều dl cơ bản như char* , chưa tìm hiểu sâu về string). nhưng nó có is.ignore() như char* ko, bạn thêm .ignore() hay fflush() vào thử xem

... viết 19:15 ngày 30/09/2018

thử

getline(is, <string> );

xem có được không?

Vu Xuan Loc viết 19:16 ngày 30/09/2018

Ok, thankiu mọi người

Bài liên quan
0