у меня есть время цикла и код нижеВыход из цикла while, cin. с помощью Ctrl-Z/Ctrl-D не работает C++
string namn, word;
while(getline(cin, namn)){
istringstream iss(namn);
vector<string> v;
while(iss >> word){
v.push_back(word);
}
for(auto elements: v){
cout << elements << endl;
}
}
cout << "do something" <<endl;
, когда я запускаю код цикл работает нормально, но я не могу выйти из цикла с помощью Ctrl-Z (в окна)
я также попытался это ниже:
int main(){
string namn;
string pris;
string antal;
vector<string> v;
while(cin >> namn >> pris >> antal){
v.push_back(namn);
v.push_back(pris);
v.push_back(antal);
}
// do something with the vector maybe print it
// i can not exit the loop and continue here
return 0;
}
я также попытался с третьим решением, но оно не работает либо:
int main(){
string name;
vector<string> v;
while(!cin.eof()&& cin.good()){
cin >> name;
v.push_back(name);
}
// after exiting the loop with ctrl-Z (in windows, ctrl-d in linux)
// do something with the vector, but it never goes here
}
Задача, которую я выполняю или собираюсь решить, заключается в том, что у вас есть несколько ввода на строке, например, имя, цена, сумма. то я собираюсь хранить эти элементы в векторе. выход должен быть с использованием ctrl-z, не набрав quit или что-то еще.
Вы нажали клавишу ввода после ctrl-z? Попробуйте добавить разрыв, если namn.empty() выйдет из цикла с пустой строкой. –