Nie wiem czy dobrze Cię zrozumiałem. Chodzi Ci o to, że jest pomijany std::cin? Jeśli tak, to dzieje się tak dlatego, że:
std::cin >> napis;
Wczytuje dane tylko do białego znaku, resztę pozostawia w buforze, a z tego bufora zczytuje następne wywołanie std::cin.
Jeśli chcesz temu zaradzić, użyj std::getline(). Ta funkcja pobierze dane aż do końca linii (lub innego znaku, jest to zależne od opcjonalnego parametru).
std::getline(std::cin, napis);
Informacje na temat tej funkcji znajdziesz tutaj