A cannibal is a person who eats the flesh of other human beings. This word matches the meaning given in the question directly.
Option B, carnivore, means an animal or person that eats meat in general, such as chicken, mutton or fish. It does not specifically mean eating human flesh.
Option C, herbivorous, describes an animal that eats only plants, which is the opposite of eating flesh.
Since option A gives the exact meaning, option D, none of these, is not needed.
The correct answer is option A, Cannibal.