luar_soll: (Default)
[personal profile] luar_soll
о, мне тут напомнили, что я коллекционирую собственные идиотские ошибки в прогах и их последствия, поэтому расскажу о следующей:
Если вы напишете в С++

char c='и'; //тут может быть любая русская буква
int x=c;
int a[256];
cin>>a[x];

с большой вероятностью ваша прога вылетит. Потому что char русской буквы - отрицательное число, и индекс тоже получится отрицательный. чтобы прога работала, надо написать там не char, а unsigned char

Date: 2010-12-12 01:37 pm (UTC)
tanriol: (Default)
From: [personal profile] tanriol
А с русскими буквами в исходном коде вообще все интересно.

Date: 2010-12-12 02:31 pm (UTC)
ext_498122: (Default)
From: [identity profile] luar-soll.livejournal.com
Кстати, да. Ведь еще есть такая фигня, как кодировка ><
Из-за этого мне какую-то фигню в позапрошлом году пришлось делать для английского текста (только я уже не помню, что там было)

Date: 2010-12-12 02:45 pm (UTC)
tanriol: (Default)
From: [personal profile] tanriol
Вот-вот. В итоге, например, при попытке проверить твой код я обнаружил, что 'а' компилятор представил в виде константы типа int (выдав предупреждение) со значением 0xd0b0 (да здравствует utf8), после чего урезал до char (с предупреждением о переполнении).

Date: 2010-12-13 06:27 am (UTC)
ext_498122: (Default)
From: [identity profile] luar-soll.livejournal.com
Ну да, у меня в вижле, кажется, виндоус-1251

November 2017

S M T W T F S
   1234
567 891011
12131415161718
19202122232425
2627282930  

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 6th, 2026 05:57 am
Powered by Dreamwidth Studios