Вот код, который я использую для чтения ввода с консоли.Он читает первую строку, используя строковый поток, он также считывает слова из этой строки, но сразу после этого происходит сбой.
То же самое работает с файлом, если вместо стандартного ввода я беру ввод из файла.Тогда тот же код работает без сбоев.Я не могу понять, в чем проблема.
int main()
{
string line;
set<string> dict;
vector<string> file;
vector< vector<string> > message;
while(true)
{
getline(cin,line);
if(line.at(0) == '/' && line.at(1) == '/')
break;
else
dict.insert(line);
}
int i =0;
istringstream stream;
while(true)
{
getline(cin,line);
cout<<line<<endl;
stream.str(line);
string words;
while(stream >> words)
{
message[i].push_back(words);
cout<<words<<" ";
}
cout<<"Reached out of the first loop"<<endl;
i++;
}
cout<<"The dictionary input is"<<endl;
set<string>::iterator it;
for(it = dict.begin();it!=dict.end();it++)
cout<<*it<<endl;
cout<<endl;
int vec_size = message.size();
for(i = 0;i<vec_size;i++)
{
int inner_size = message[i].size();
for(int j= 0;j<inner_size;j++)
cout<<message[i][j]<<" ";
cout<<endl;
}
system("pause");
return 0;
}
Я даю ввод в виде
// dict string1 string2 string3 // message 12345 67 xc23 bgv34 090ds 3ndlk
Я хочу прочитать слова перед // сообщением в набор строк и слова после // сообщения в двухмерный вектор, где каждая строка содержит слова, которые были добавлены в первой строке
ЕслиЯ беру этот ввод из файла, тогда он работает правильно, но не с вводом из консоли.