30/09/2018, 18:20
Cách nhập chuỗi
Anh ơi, cho em hỏi:
Em khai báo thế này:
char *a;
a = new char[100];
làm thế nào để nhập kí tự vào chuỗi a ?
Em mới học nên còn gà lắm ạ. mong các anh chỉ giáo thêm
Cảm ơn các anh ạ
Bài liên quan
getline (cin, a) thì báo lỗi vì a phải là 1 string
thì bạn tạo a là 1 string (nếu là c++)
Còn nếu là mảng ký tự thì dùng
hoặc đơn giản là
cin >> a;
Nếu trong C thì dùng
^^
Hàm getline
Khi sử dụng phải khai báo thư viện string.
Đối với C++ :
cấu trúc :
Đị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.
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.
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
ps: của bác Honey_moon,
nhưng mình thích kiểu của @drgnz hơn vừa nhanh vừa gọn đỡ dài dòng
ví dụ như:
Mấy anh ơi…
Vấn đề ở đây của em là
Class sinhvien{
Private: char* ten, char * mssv…;
Public:
Void nhapten(char* ten, char mssv…)
};
Đề là kiểu char * và phải dùng mảng động cấp phát k thừa k thiếu.
Đã học class thì dùng string đi em
ĐỀ yêu cầu làm = char * anh ơi