Этот код выдает YES сразу после ввода значения тестового примера.Вывод, который я получаю, - ДА, без ввода строки
Ваша проблема здесь:
/* code */
cin>>t; -----------> std::cin
while(t--)
{
string s;
int count = 0,size = 0;
getline(cin,s); ------------> std::getline()
/* remaining code */
Чтение с чем-то вроде std::cin
оставляет новую строку во входном потоке.Когда поток управления достигнет std::getline()
, новая строка будет отброшена, но ввод немедленно прекратится.Это приводит к тому, что std::getline()
s пытается прочитать новую строку и пропускает ввод.
FIX : при переключении с пробела, разделенного символом ввода на новую строку, вы хотите очистить все символы новой строки отвведите поток std::cin.ignore()
Фиксированный код должен быть: https://www.ideone.com/ucDa7i#stdin
#include <iostream>
#include <string>
#include <limits>
#include <algorithm>
int main()
{
int t;
std::cin >> t;
// fix
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
while(t--)
{
std::string s;
int count = 0,size = 0;
getline(std::cin,s);
/* remaining code */
}