![]() |
|
Thread Tools |
#1
|
|||
|
|||
Help sửa code cho em với :(((
Bài trên trường ra pass data vào object rồi in tên ra kèm theo chiều dài của tên, tuổi ko in nhưng vẫn bắt pass vô
![]() ![]() ![]() ![]() ![]() Code:
#include <iostream> #include <string> #include "Person.h" using namespace std; int lengthOfName(Person &p); int main() { int number, age; string name; cout << "How many people ?: "; cin >> number; Person *ptr = nullptr; Person obj; obj.Person::Person(number); ptr[] = &obj; for (int count = 0; count < number; count++) { cout << "Enter name of person " << count+1 << ": "; cin >> name; ptr[count].setName(name); cout << "Enter age of person " << count+1 << ": "; cin >> age; ptr[count].setAge(age); } for (int count = 0; count < number; count++) { cout << "The name " << ptr[count].getName() << " has length " << lengthOfName(*ptr) << endl; } delete ptr; ptr = nullptr; return 0; } int lengthOfName(Person &p) { string name = p.getName(); return name.length(); }
__________________
GIGABYTE X470-7 | AMD Ryzen 7 2700X | Corsair Dominator 4x8GB 3200 | GIGABYTE GTX1080Ti Turbo | WD Blue M.2 1TB | Micron 1100 2TB | AeroCool P7 850 | LEPA Exllusion 240 | Phantek Evolv ATX | Corsair RGB hub | Corsair LL120RGB | Corsair Commander | SAMSON MTR201 | Audiotechnica M50x | Focusrite Scarlett Solo | Vortex RACE3 | Velocifire NK01 | Logitech G603 |
#2
|
|||
|
|||
Re: Help sửa code cho em với :(((
E sửa được rồi nhưng lúc chạy cái đoạn getline nó bị bỏ qua là sao ạ
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Code:
#include <iostream> #include <string> #include "Person.h" using namespace std; int lengthOfName(Person &p); int main() { int number, age; string name; cout << "How many people ?: "; cin >> number; Person *ptr = nullptr; Person obj; ptr = &obj; ptr = new Person[number]; for (int count = 0; count < number; count++) { cout << "Enter name of person " << count+1 << ": "; getline(cin, name); ptr[count].setName(name); cout << "Enter age of person " << count+1 << ": "; cin >> age; ptr[count].setAge(age); } for (int count = 0; count < number; count++) { cout << "The name " << ptr[count].getName() << " has length " << lengthOfName(*ptr) << endl; } delete [] ptr; ptr = nullptr; return 0; } int lengthOfName(Person &p) { string name = p.getName(); return name.length(); }
__________________
GIGABYTE X470-7 | AMD Ryzen 7 2700X | Corsair Dominator 4x8GB 3200 | GIGABYTE GTX1080Ti Turbo | WD Blue M.2 1TB | Micron 1100 2TB | AeroCool P7 850 | LEPA Exllusion 240 | Phantek Evolv ATX | Corsair RGB hub | Corsair LL120RGB | Corsair Commander | SAMSON MTR201 | Audiotechnica M50x | Focusrite Scarlett Solo | Vortex RACE3 | Velocifire NK01 | Logitech G603 |
#3
|
|||
|
|||
Re: Help sửa code cho em với :(((
e vừa thêm cin.ignore(); vào là nó chạy ngon rồi ko bị bỏ qua đoạn enter name. Nhưng mà tại sao lại như thế ạ
![]() ![]()
__________________
GIGABYTE X470-7 | AMD Ryzen 7 2700X | Corsair Dominator 4x8GB 3200 | GIGABYTE GTX1080Ti Turbo | WD Blue M.2 1TB | Micron 1100 2TB | AeroCool P7 850 | LEPA Exllusion 240 | Phantek Evolv ATX | Corsair RGB hub | Corsair LL120RGB | Corsair Commander | SAMSON MTR201 | Audiotechnica M50x | Focusrite Scarlett Solo | Vortex RACE3 | Velocifire NK01 | Logitech G603 |
#4
|
||
|
||
Re: Help sửa code cho em với :(((
khi cậu cin >> number vào nó còn thừa cái "\n" (bằng giá trị khi cậu gõ enter) chưa dùng, phải flush đi nếu muốn đọc tiếp dữ liệu khác
|
#5
|
|||
|
|||
Re: Help sửa code cho em với :(((
Quote:
![]() ![]() ![]() ![]()
__________________
GIGABYTE X470-7 | AMD Ryzen 7 2700X | Corsair Dominator 4x8GB 3200 | GIGABYTE GTX1080Ti Turbo | WD Blue M.2 1TB | Micron 1100 2TB | AeroCool P7 850 | LEPA Exllusion 240 | Phantek Evolv ATX | Corsair RGB hub | Corsair LL120RGB | Corsair Commander | SAMSON MTR201 | Audiotechnica M50x | Focusrite Scarlett Solo | Vortex RACE3 | Velocifire NK01 | Logitech G603 |
#6
|
|||
|
|||
Re: Help sửa code cho em với :(((
Code:
ptr[count].setName(name); ptr[count].setAge(age); Code:
ptr[count]->setName(name); ptr[count]->setAge(age); ![]()
__________________
GIGABYTE X470-7 | AMD Ryzen 7 2700X | Corsair Dominator 4x8GB 3200 | GIGABYTE GTX1080Ti Turbo | WD Blue M.2 1TB | Micron 1100 2TB | AeroCool P7 850 | LEPA Exllusion 240 | Phantek Evolv ATX | Corsair RGB hub | Corsair LL120RGB | Corsair Commander | SAMSON MTR201 | Audiotechnica M50x | Focusrite Scarlett Solo | Vortex RACE3 | Velocifire NK01 | Logitech G603 |
#7
|
|||
|
|||
Re: Help sửa code cho em với :(((
Quote:
Khi bạn khai báo Quote:
Sửa thành kiểu này Code:
int main() { int number, age; string name; cout << "How many people ?: "; cin >> number; Person *ptr[number]; for (int count = 0; count < number; count++) { Person *obj = new Person(); ptr[count] = obj; cin.ignore(); cout << "Enter name of person " << count+1 << ": "; getline(cin, name); ptr[count]->setName(name); cout << "Enter age of person " << count+1 << ": "; cin >> age; ptr[count]->setAge(age); } for (int count = 0; count < number; count++) { cout << "The name " << ptr[count]->getName() << " has length " << lengthOfName(**ptr) << endl; } delete *ptr; return 0; } ![]() |
#8
|
|||
|
|||
Re: Help sửa code cho em với :(((
^
cái #3 là e làm xong rồi đó thím. nhưng tại đọc sách e tưởng "->" nó giống với "." nên thử nhưng ko được. BTW cảm ơn thím ![]() ![]()
__________________
GIGABYTE X470-7 | AMD Ryzen 7 2700X | Corsair Dominator 4x8GB 3200 | GIGABYTE GTX1080Ti Turbo | WD Blue M.2 1TB | Micron 1100 2TB | AeroCool P7 850 | LEPA Exllusion 240 | Phantek Evolv ATX | Corsair RGB hub | Corsair LL120RGB | Corsair Commander | SAMSON MTR201 | Audiotechnica M50x | Focusrite Scarlett Solo | Vortex RACE3 | Velocifire NK01 | Logitech G603 Last edited by giwim 5; 22-05-2018 at 06:48. |
#9
|
||
|
||
Re: Help sửa code cho em với :(((
Quote:
cái [] kiểu a[b] thực ra tương đương với *(a + b) cái -> kiểu a->b thực ra tương đương với *(a).b Cậu không có cái pointer nào để deference thì dùng -> làm gì? |
![]() |
Thread Tools | |
|
|