ulidtko
26.09.2011 23:42 dedicated microblogging account
C++ iostreams — беспомощный кусок говна, от начала и до конца зафейленная попытка заменить stdio.h.
Вот задачка для примера. Нужно прочитать некий текст в ASCII, вычленить из него слова (≝последовательности латинских букв), привести в lowercase, отсортировать и вывести построчно.
Решение на боголепой п̶о̶ч̶т̶и̶ сишечке:
string read_word() {
char word[200]; // problem-imposed limit
scanf("%*[^a-zA-Z]");
if(1 != scanf("%[a-zA-Z]", word))
return "";
return word;
}
Решение на iostreams... как обычно: костыли и собирание своего собственного велосипеда. Q.E.D.
а с каких под scanf научился regexp'ам???
вот с таких.
> The functions fscanf(), scanf(), and sscanf() conform to C89 and C99 and POSIX.1-2001.
уже поглядел man, не regexp'ы, просто range, но все же как-то раньше не знал про такое
http://hkn.eecs.berkeley.edu/~dyoo/pytho... Кстате, змеевикам вот портировали. А то у них тоже, как и плюсоебов только РЕГЭКСПЫ ПАРСЕРЫ ТОКЕНАЙЗЕРЫ
http://docs.freebsd.org/info/iostream/io... Фу, бздуны такие бздуны.
отмечусь-ка и я в треде C-ёбов :)
А использовать scanf в плюсах тебе, видимо, религия не позволяет?
не знаю как ему, а мне не позволяет — грозится в угол поставить :(
Здесь вроде речь о том, что кривая именно iostreams (причем, она кривая на всех уровнях, начиная с того момента, как в диаграмме наследования появился ромбик).
Пичаль :(
Так на самом деле iostreams же еще и тормозить будут немеряно на фоне scanf...
type-safety lack, да.
Это как макросы против шаблонов :(
именно
Вообще, в плюсах это решается (чтобы не писать костыли и свой input_iterator), через
boost::iostreams и его концепцию фильтров. В частности, есть regex_filter http://www.boost.org/doc/libs/1_47_0/lib... .
Не спрашивайте о производительности только, гм. (В тоже время на фоне самого IO, его разбор не будет горлышком бутылки).
бутс не нужен
Наоборот. Плюсы без буста не нужны :)
ни плюсы ни буст не нужны
есть мнение что ты ниасилил плюсцы
okay :(
Есть мнение, что ты не смотрел ни одной вакансии по плюсцам. Буст требуют чуть менее, чем везде.
ошибочное мнение, да
Попиши на бусте еще этих мягких французских булок и ТРАВИСЬ СУКА ТРАВИСЬ ХАРДКОР ШАБЛОНЫ ПЕРЕКУР ЗА КОМПИЛЯЦИЕЙ ЛОГ ОШИБОК БОЛЬШЕ ДОСТИЖЕНИЙ ТВОЕЙ ЖИЗНИ, ну и так далее.
P.S: Немного сгустил краски.
Ну я когда смотрел — из двух десятков найденных, в пятнадцати был нужен буст.
95% населения (как и я, например) — идиоты, ок.
Вообще, это просто способ проверить, осилятор ты или нет, но не факт, что будет использоваться и вообще приветствуется.
цпп и type-safety? ;-)
+1