LINUX.ORG.RU

[С++] facepalm

 


0

0

...Как обычно, модельный кусочек кода:

for(int i=0; i<n; i++) {
  for(int i=0; str[i]; i++) {
    str[i] = tolower(str[i]);
  }
}

Boost... STL... Qt... Реальность - она выше по тексту :(

Как это говно потом сопровождать? Быть может, я слишком эстет? :) Ваше мнение?


Ответ на: комментарий от Eddy_Em

Тьфу, блин, в было/стало одну и ту же строку написал :)

аха, есть такое :) затер строку просто

#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

int main(int argc, char *argv[])
{
  int n=5;
  std::string str="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  std::system("cls");
  for(int i=0; i<n; i++){
    for(int i=0; str[i]; i++){
        std::cout<<i<<" ";
        std::cout<<std::endl<<str;
        str[i] = tolower(str[i]);
    }
  std::cout<<std::endl;
  }
  system("PAUSE");	
  return 0;
}

зыж да я сейчас в винде, но компилятор g++

UnknownUser
()
Ответ на: комментарий от Eddy_Em

> Вы хоть откройте тайну: зачем n раз преобразовывать строку в нижний регистр?

школота.. у папы весь цимес происходит в обработчике page faults, а тот код это всего лишь триггер..

dilmah ★★★★★
()
Ответ на: комментарий от kelyar

My english is very bad, because I have no speaking practice - only reading science articles.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от anatolat

> Может, это вероятностный tolower. Может перевести символ в нижний регистр, а может и не перевести. Выполняя его n раз, мы повышаем вероятность правильного результата.

Спасибо, посмеялся =)

runtime ★★★★
()

Может там во втором потоке такой же цикл, который её n раз в toupper ? Типа, кто кого.

runtime ★★★★
()
Ответ на: комментарий от Cy6erBr4in

а ты у нас элита? и везде вокруг тебя куда бы ты не пошел Линукс? Нет? Сливаешь? Смирись с тем, что не все круглосуточно сидят под линуксом. И работать иногда и в венде приходится.

UnknownUser
()
Ответ на: комментарий от anatolat

>Может, это вероятностный tolower. Может перевести символ в нижний регистр, а может и не перевести. Выполняя его n раз, мы повышаем вероятность правильного результата.

Бывает и такой. Помнится в одной Qt-шной проге, путь к папке приводился tolower()'ом, а потом сравнивался с искомым... Под виндой, конечно, работало... (И под Макосэксом внезапно тоже ;)) Под линуксом стабильно «терялись» папки типа Desktop или /home/Vasya_Pupken/documentum. (Соответственно, вероятность работы зависела от целевой платформы )))

slackwarrior ★★★★★
()
Ответ на: комментарий от impfp

Сдается мне, на эстетику в данном случае посягаешь ты. Придумывать для каждого такого ничтожного цикла имя итератора - маразм.
Можно взглянуть и с другой стороны: перекрытие областью видимости защищает итератор уровнем выше от случайного изменения :)

madcore ★★★★★
()
Ответ на: комментарий от madcore

> перекрытие областью видимости защищает итератор уровнем выше от случайного изменения

Именно так. Стандартная практика, если тот индекс не нужен в этом цикле. Вот если бы он на каждый цикл по особенному имени генерил - вот это был бы тревожный звоночек.

LamerOk ★★★★★
()

Вы все норкоманы. Если strlen(str)+2 >= n то внутренний цикл выполнится 1 раз, нет — так будет крутиться вечно, или пока извне не поменяют n или содержимое str.

anonymous
()
Ответ на: комментарий от lester

хм, а если я напишу что-то типа

for (int i = 0; i < smth; i++)
{
    for (int j = 0; j < smth2; j++)
    {
        // и тут, например, буду заполнять массив [i, j]
    }
}
будет работать? я просто не программист, уж не обессудь

madgnu ★★★★★
()
Ответ на: комментарий от lester

да хз, из исходного поста следует, что итератор, или как его там, родительского цикла не виден в дочернем. или это только при условии одинакового имени?

madgnu ★★★★★
()
Ответ на: комментарий от impfp

выжимка хреновая. без str = imja_sestra(i); код теряет смысл, а так всё понятно — обычный быдлокод.

smoke
()
Ответ на: комментарий от anonymous

> Вы все норкоманы.

Кот бы говорил. ))

Если strlen(str)+2 >= n то внутренний цикл выполнится 1 раз, нет — так будет крутиться вечно


А потом создаст чорную дыру и засосёт в неё все ништяки, да. Внтуренний цикл - он такой. Он может.

Кстати, а откуда взялось число «2»? Почему не «5» или, скажем, «7»?

LamerOk ★★★★★
()
Ответ на: комментарий от UnknownUser

да ладно? а куда же он делся? она есть на «убогом» сиди диске, на котором поставляется дефолтная убунта... тоесть интернет не нужен, ага...

Cy6erBr4in ★★★
()
Ответ на: комментарий от UnknownUser

угу, кругом, куда не плюнь, линукс да саплярис... никому ничего не сливаю.... а работать не надо в венде, если конечно ты не скажешь что она тебе нравится ;)

Cy6erBr4in ★★★
()
Ответ на: комментарий от UnknownUser

хинт: в дефолтной убунте сейчас даже «базовый» Erlang из коробки...

уж почему он там появился дело десятое...

Cy6erBr4in ★★★
()
Ответ на: комментарий от Cy6erBr4in

есть на диске, нет при установке компилятора g++, gcc есть, а плюсового нету. как в 9.10 не знаю, включили ли, ибо с версии 7.10 обновляюсь без чистых установок.

а работать не надо в венде, если конечно ты не скажешь что она тебе нравится

не скажу что нравится, но я не собираюсь переводить на линукс контору из 30 компов в своем издательском доме, ибо есть УДОБНЫЙ для сотрудников лиц. софт для полного цикла обработки информации, начиная от приема и заканчивая версткой, потому что абстрактный человек из инета сказал мне что на венде не работают, уж извините.

$ sudo apt-cache policy erlang
erlang:
  Установлен: (отсутствует)
  Кандидат: 1:13.b.1-dfsg-2ubuntu1
  Таблица версий:
     1:13.b.1-dfsg-2ubuntu1 0
        500 http://mirror.spark-media.ru karmic/universe Packages
$uname --all
Linux molodoy-laptop 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux
$cat /etc/issue
Ubuntu 9.10
UnknownUser
()

Базар :)
Пора по ходу его как-то кончать.

impfp
() автор топика
Ответ на: комментарий от UnknownUser

причем тут контора и 30 компов? ты лично сам-то чем занимаешься? уж не системный ли администратор? ну и каким боком ты к издательскому делу относишься? что тебе мешает установить Linux?

[code] $ sudo apt-cache policy erlang-base erlang-base: Installed: 1:13.b.1-dfsg-2ubuntu1 Candidate: 1:13.b.1-dfsg-2ubuntu1 Version table: *** 1:13.b.1-dfsg-2ubuntu1 0 100 /var/lib/dpkg/status [/code]

[code] $ uname --all Linux n100805 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux [/code]

[code] $ cat /etc/issue Ubuntu 9.10 [/code]

ты читать умеешь? я же сказал _базовый_...

Cy6erBr4in ★★★
()
Ответ на: комментарий от Cy6erBr4in

agrhhh...

причем тут контора и 30 компов? ты лично сам-то чем занимаешься? уж не системный ли администратор? ну и каким боком ты к издательскому делу относишься? что тебе мешает установить Linux?


$ sudo apt-cache policy erlang-base
erlang-base:
  Installed: 1:13.b.1-dfsg-2ubuntu1
  Candidate: 1:13.b.1-dfsg-2ubuntu1
  Version table:
 *** 1:13.b.1-dfsg-2ubuntu1 0
        100 /var/lib/dpkg/status
 
$ uname --all
Linux n100805 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux
$ cat /etc/issue 
Ubuntu 9.10

ты читать умеешь? я же сказал базовый...

Cy6erBr4in ★★★
()
Ответ на: комментарий от Cy6erBr4in

уж системный. а работодатель мой - издательский дом. инфраструктура налажена и линукс тут пихать некуда! была бы возможность - был бы он и тут. или забыли зачем держат сисадминов - обеспечить работоспособность систем. мне не столько сейчас платят, чтобы я изголялся и менял инфраструктуру.

ты читать умеешь? я же сказал базовый...

руками я не косил его, по твоей логике он должен присутствовать. умеем отличать пакеты на диске от списка устанавливаемых пакетов у убунты?

UnknownUser
()

все просто: если n > 0, меняем регистр, если n <= 0, ничего не меняем.

Bsd-un ★★★
()
Ответ на: комментарий от UnknownUser

ты посмотри какой пакет ты искал, и какой показал я тебе...

теперь смотрим что у нас идет в стандартной поставке 9.10, а именно этот нахер никому ненужный Ubuntu One, дальше смотрим что этот убунту уан юзает, а именно CouchDb, дальше смотрим на чем этот дб написан, а именно - Erlang... PROFIT! ты не смог бы поставить 9.10 без установки пакета erlang-base...

:)

про издательский дом я так и не понял... что тебе мешает пользоваться линуксом на твоем личном воркстейшене?

Cy6erBr4in ★★★
()
Ответ на: комментарий от Cy6erBr4in

ок, за erlang-base согласен, мой косяк. а воркстейшн в домене, можно конечно заюзать likewise (кажется так), но только что закончили внедрение издательской системы по указанию из первопрестольной, а самый цимис в том, что оно завязано на .Net не ниже 2.0 и С#, так что пока эксперименты с линуксом отложены на какое-то время :)

оффтоп: ссори за резкость :)

UnknownUser
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.