Evgen
Имхо читабельнее будет
Evgen
А суть та же
Serg
ага, ок!
Evgen
А вот с проблемой...
Evgen
К сожалению, помочь не смогу
Evgen
Но можно скостылить
Serg
должен быть крутой способ, чувствую это жопой!
Evgen
Evgen
Я так думаю, должно помочь
Serg
(как ты цитируешь?)
Serg
Evgen
Serg
if (is_it == eos) continue; добавил
жи есть!
Evgen
Serg
Evgen
Хах
Evgen
Не всё так просто
Serg
чет не понимаю почему твой способ не работает
Evgen
¯\_(ツ)_/¯
Surreal
нет )
У вас в cin данные откуда поступают?
Serg
с клавиатуры
Surreal
И как вы расчитываете eof получить с клавиатуры?
Serg
eof в данном случае должен быть в конце ввода
Surreal
А как вы его вводите?
Serg
его принимает cin когда пользователь нажимает enter
Surreal
Т.е. можно только одну строку ввести, и все, сразу eof?
Serg
да
Surreal
Ага.
Surreal
Интересный факт: нажатие на enter - это eol, а не eof
Surreal
У вас какой формат входных данных?
s1 1 s2 2 s3 3? или:
s1 1
s2 2
s3 3
Serg
s1 1 s2 2 s3 3 - вот этот
Surreal
Читайте через getline строку с std::cin, дальше либо парсите ее, либо оборачивайте в stringstream и из него читайте.
Surreal
Как-то так: http://ideone.com/dCQf6p
Serg
да, жаль через итератор не вышло) спасибо
Surreal
Проверяйте на eol ('\n'), а не eof, тогда будет работать.
Surreal
while(it->length() != 0)
Serg
а это не тоже самое что и eos?
Serg
с итератором не получается вобще
Serg
*вобщем
Surreal
Нет, это не то же самое. Возможно, итератор скипает конец строки.
Surreal
Собсна, все верно. std::cin по дефолту скипает символ конца строки (в том числе), за это отвечает skipws флаг. Итератор же идет по >>.
Surreal
Желаемый результат будет только в случае посимвольного чтения. Так что не надо городить велосипедов.
Serg
ну да, зато в cout легко поместить через итератор
ostream_iterator<string> os_it(cout, "\n");
for (auto it : map)
{
os_it = it.first + " " + to_string(it.second);
os_it++;
}
Serg
интересно, а можно как нибудь std::pair туда помещать, для этого надо потоку cout указать как их выводить только...
Surreal
Вы совсем недавно начали на C++ писать, да? Не надо так делать.
melvin
некоторое количество времени я думал что тут один человек сам с собой беседует.....
Serg
Surreal
Serg
Объясните, почему не стоит
Surreal
Потому что есть очевидный, чистый вариант:
for (auto &e: map) {
std::cout << e.first << " " << e.second << "\n"
}
В вашем же на каждую итерацию по 3 временных объекта создается.
Александр
К тому же, итераторами по вводу/выводу пользуются в алгоритмах, но уж точно не в for'е
Serg
Serg
(чисто чтобы "вкурить" потоки)
Александр
Вроде для новичков есть чатик :)
λ
@smertig чтоб тебе новички отвечали? Нет! Спасибо уж.
Александр
Так я видел, как автор вопроса задал его там, не получил ответа и пришел сюда
λ
Тем более. Автору ачивку "Молодец." нужно дать.
Serg
Я ужк почти джун,не новичок)
Александр
А каким образом определяется текущее мастерство? Не считая должности
Gregory
Александр
Ну это понятно. Может какие-то более конкретные характеристики есть
Gregory
это самая лучшая характеристика в чате
Gregory
а так в целом - результаты работы человека, его код )
Александр
А если у меня все работы приватные?)
Gregory
то остается только уровень обсуждения )
Александр
Это я так, к примеру
Александр
Ага
Evgenii
Gregory
И не то что бы какой то продукт там хранить, а просто образец кода - как ты пишешь
Александр
Gregory
самое сложное придумать чтобы такое сделать как этот самый образец )
Gregory
с адекватными времязатратами
Gregory
Dmitri
ну например когда студент, это совсем плохо. т.к. иначе вообще непонятно что за человек