![]() | |
| |||||||
| Home | Register | Blogs | FAQ | Members List | Calendar | Downloads | Arcade | Mark Forums Read |
| Languages, Compilers and Interpreters C,C++,C#,.NET,Java,PHP,Perl,SQL and more |
![]() |
| | LinkBack | Thread Tools | Display Modes |
| | #1 |
| The Reloaded Join Date: Jan 2002 Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7 Reputation:
45 | ну почему getline(basic_string<...>&, basic_istream<...>&, E delim) выкидывает delim, не добавляя его в выходной ресультат?!? и есть ли стандартная функция с добавлением? а то я уже сижу, алгоритмы с итераторами копаю в этом направлении... ![]()
__________________ Сайт армянских маньяков |
| | |
| | #2 |
| Guru Apprentice | ? а ты разве не знаешь кто твой delim когда вызываешь функцию? сам добавляй трудно что-ли?
__________________ \/\/h47'5 1n 4 n4m3? 7h47 wh1(h w3 (4|| 4 r053, 8y 4ny 07h3r n4m3 w0u|d 5m3|| 45 5w337... |
| | |
| | #3 |
| Administrator | нафига тогда существует понятие делим, если и его в выходной результат закидывать ?? а если у тебя несколько делим-ов - который нужно в результат кидать ? лол
__________________ И повешенные могут качаться в неположенную сторону. /С.Е.Лец/ |
| | |
| | #4 |
| The Reloaded Join Date: Jan 2002 Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7 Reputation:
45 | 2 ektich: можно, но дополнительно надо проверять, не произошла ли остановка из-за eof. если в цикле, то код некрасивый получается. но видимо на этом и придется остановиться. 2 greco: а это смотря как к этому понятию подходить. не сосредотачиваясь на различных подходах, скажу только, что данная реализация вообще теряет разделитель - не только не добавляет к строке, но и из потока изымает. из-за чего приходится затрачивать дополнительные усилия по отлову разделителя. а несколько делимов на одной позиции быть не может, один да всретится первым, лишив второго его очереди. не виу здесь никакой проблемы.
__________________ Сайт армянских маньяков |
| | |
| | #5 |
| Administrator | ты просто не понял моего вопроса - я говорил о множестве делимов - когда оное состоит из нескольких элементов...ну да неважно.
__________________ И повешенные могут качаться в неположенную сторону. /С.Е.Лец/ |
| | |
| | #6 | |
| The Reloaded Join Date: Jan 2002 Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7 Reputation:
45 | Quote:
![]()
__________________ Сайт армянских маньяков | |
| | |
| | #7 |
| The Reloaded Join Date: Jan 2002 Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,178
Rep Power: 7 Reputation:
45 | (красивое) решение найдено! оказывается, getline возвращает поток, чем мы и воспользуемся: Code: string s;
while(!getline(in, s, '.').eof())
{
s += '.';
// ...
} Code: string s;
getline(in, s, '.');
while(!in.eof())
{
// ...
getline(in, s, '.');
} кроме того, конкретно моя задача решается еще проще - т. к. я потом должен делать разбор строки s, я могу действительно забывать о '.' и разбор организовывать с учетом этого момента (т. е. отсутствие точки на конце не считать ошибкой). но это уже мелочь. всем: научно не доказано, но обычно эффективные программы на c++ оказываются еще и весьма красивыми не забывайте об этом!
__________________ Сайт армянских маньяков |
| | |