lệnh cin.ignore() trong C++ có tác dụng như thế nào?

Em có đoạn lệnh như vậy

Code:

#include <iostream.h>

void main() 
{ 
char *dong[100]; int i, n; 
cout << "so dong = "; cin >> n ; 	
		(*)		
for (i=0; i<n; i++) 
{ 
dong[i] = new char[80];
cout<<"dong thu "<<i<<" la: "<<endl;	
cin.getline(dong[i],80); 	
} 
for (i=0; i<n; i++) cout << dong[i] << endl;	
}

“dong thu 0 la:
dong thu 1 la:
_

dấu nhắc không xuât hiện ở ” dong thu 0 la: ” nhưng khi thêm cin.ignore() vào (*) thì dấu nhắc xuất hiện ở ” dong thu 0 la: “. Mọi người giải thích rõ chỗ này giúp em nha

Em vừa mới bắt đầu học C++ cách đây 1 tháng nên còn nhiều thứ chưa rõEm có đoạn lệnh như vậythì khi chạy chương trình sau khi nhập số dòng, nó hiện ra”dong thu 0 la:dong thu 1 la:dấu nhắc không xuât hiện ở ” dong thu 0 la: ” nhưng khi thêm cin.ignore() vào (*) thì dấu nhắc xuất hiện ở ” dong thu 0 la: “. Mọi người giải thích rõ chỗ này giúp em nha