| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Присваивание переменной значения |
| Автор: Женько 17.7.2009, 23:54 | ||
| я в определенных вариантах присваиваю перменной startMonth некот стринговые значения типа 01,02,03.... все норм. все цифры типа 01,02,03... билдеру понятны(подсвечены). а именно 08 и 09 не понятны (тка и остались черными). и при компиляции он ругается. Мол: [C++ Error] Unit1.cpp(84): E2325 Illegal octal digit Как убедить билдер, что 08 и 09 тож не плохие строки? в коде так
|
| Автор: Данкинг 18.7.2009, 00:05 |
| А endMonth какого типа? Если Int, то зачем впереди ставить 0 ? |
| Автор: Женько 18.7.2009, 00:09 |
| ПРвет снова Переменная астринговая, а "0" мне там оч нужен Добавлено через 10 минут и 51 секунду Я победила его)) Спасибо за внимание))) |
| Автор: ИванМ 18.7.2009, 00:23 |
| Если ставится ноль слева, это означает, что число в 8-ричной системе счисления. Поэтому, естественно, на 08 и 09 он будет ругаться, потому что таких чисел не существует. |
| Автор: Cheloveck 18.7.2009, 04:22 |
Сказать ему, что это строки, думаю. Взять в кавычки тобишь |
| Автор: Женько 18.7.2009, 08:48 |
| ИванМ, но ведь на 01 и 02.. не ругается.. все равно не пойму. я то разобралась, действительно мне не хватало ковычек)) но в чем разница между 08 и 01, для меня осталось загадкой... |
| Автор: Cheloveck 18.7.2009, 14:15 |
строка есть указатель на массив символов. Указатель есть целое число. 01, 02... восьмиричная форма записи целого числа. Вот у тебя и получается, что всё работает, но на деле у тебя будет рантайм эррор. |
| Автор: xvr 20.7.2009, 13:41 |
| Читай правила записи целых чисел в С: например 100 - это число 100, а 0100 - это 64 (100 в восьмеричной системе счисления), а 0x100 - это 256 |