Trang chủ » TƯ VẤN - HỖ TRỢ - GIẢI ĐÁP » Giải đáp thắc mắc ngày 04/12/0015
19:29
Giải đáp thắc mắc ngày 04/12/0015
Câu hỏi

CLB cho em hỏi về môn nhập môn lập trình:
-Làm sao để nhập vào mảng với số phần tử chưa biết trước (do người dùng nhập vào), cũng như viết một chương trình con nhập mảng đó ?
-Ví dụ khi em viết chương trình khai báo mảng a[5] là kiểu string, mà khi yêu cầu người dùng nhập vào từng giá trị (a[0],a[1],... qua lệnh lặp) thì nó bị lỗi (em dùng visua 2008), ko biết có phải do lỗi của bản 2008 hay là không được làm như vậy, có thể cho em xin 1 chương trình mẫu về việc nhập vào mảng kiểu string  không (là yêu cầu người dùng nhập từng giá trị mảng vào qua câu lệnh lặp, khi nhập có khoảng cách ví dụ như nhập họ và tên của từng người)



Chào bạn,

Đại diện CLB Tin học, mình xin trả lời câu hỏi của bạn như sau:

Vấn đề lỗi của bạn do không có hình ảnh minh hoạ nên mình cũng không biết chính xác là lỗi gì. Vì vậy mình sẽ gợi ý cách khắc phục một số lỗi thường gặp:
+ Lỗi chưa khai báo thư viện string khi sử dụng chuỗi. Cách khắc phục là thêm thư viện vào. #include <string>
+ Lỗi tràn bộ nhớ do đọc chuỗi có khoảng trắng bằng cin>>. Cách khắc phục dùng lệnh getline(cin, "du lieu can doc") .hoặc cin.getline Tham khảo http://www.cplusplus.com/reference/string/string/getline/

Chương trình mẫu http://ideone.com/S77WRQ

Trong chương trình trên có lệnh cin.ignore(); dùng để loại bỏ những kí tự còn sót trong bộ nhớ đệm. Ở đây dùng để loại bỏ kí tự xuống dòng hoặc dấu cách sau khi nhập số lượng phần tử n. Nếu không loại bỏ nó, lệnh getline sẽ bắt kí tự đó và dữ liệu bạn nhập vô sẽ bị thiếu cái cuối cùng.

Thân ái,
:3
Chuyên mục: TƯ VẤN - HỖ TRỢ - GIẢI ĐÁP | Lượt xem: 282 | Người đăng: handsomevip007 | Thẻ: lap_trinh_cpp, CH_04_12_2015
Tổng số bình luận: 1
0
1  
đúng ngay cái cần là getline rồi cảm ơn handsomevip007 smile

Chỉ có thành viên mới được phép bình luận
[ Đăng kí | Đăng nhập ]