Witam. Pytanie brzmi co robię nie tak i czego nie rozumiem. Mam taki oto kod który stworzyłem tylko po to żeby sobie potestować działanie niektórych elementów(szczególnie pobierania znaków/łańcuchów jako warunki pętli).
char chtab[10];
for (int i = 0; i < 3; i++)
{
while (std::cin.get(chtab, 10))
{
std::cout << "while\n";
}
if (std::cin.fail())
std::cout << "fail\n";
if (std::cin.eof())
std::cout << "eof\n";
if (std::cin.bad())
std::cout << "bad\n";
std::cin.clear();
std::cin.ignore(255, '\n');
}
std::cout << chtab;
spodziewałem się, że jak wpiszę jakiś tekst pokroju: "tak" to będę go wpisywał wiecznie bo wszystko jest w porządku, a jednak wyskakuje jedno "while" czyli pętla wykonuje się raz i potem kończy, następnie wyskakuje "fail" i program pyta ponownie o wpisanie słowa. Mógłby mi ktoś wyjaśnić co pominąłęm, a także jakieś dodatkowe informacje na temat umieszczania cin.get()(wersji do łańcuchów) w warunku pętli. Z góry dziękuje za odpowiedź