| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > как в char записать больше 255 символов? |
| Автор: dembel 29.2.2008, 16:45 |
| подскажите, как в переменую типа char записать больше 255 символов? |
| Автор: Goganchic 29.2.2008, 16:56 |
| dembel, извини, но ты сам понял что спросил? |
| Автор: baldina 29.2.2008, 17:18 |
| Переменная типа char - 8бит 2^8=256 так что больше, извини, не выйдет |
| Автор: dembel 29.2.2008, 17:35 | ||
а какаю нужно использовать переменную, которая бы вмещала бы долее 256 символов |
| Автор: baldina 29.2.2008, 17:40 |
| short - обычно 16 бит, 65536 значений long - обычно 32бита, много значений ;-) Добавлено через 1 минуту и 19 секунд только вопрос действительно странный - не 256 символов, а 256 значений. для множества символов нужен символьный массив |
| Автор: Alek86 29.2.2008, 17:42 |
| baldina, есть еще wchar_t |
| Автор: baldina 29.2.2008, 17:45 |
| Alek86, да еще много чего есть |
| Автор: Alek86 29.2.2008, 17:48 |
| но только char и wchar_t подходят под определение "символ" |
| Автор: vinter 29.2.2008, 17:52 |
| по моему вы не понимаете о чем человек спросил, ему видимо не нравиться ограничение строки в 255 символов. |
| Автор: baldina 29.2.2008, 17:54 | ||
возможно. но интересно, откуда такое ограничение. Добавлено @ 17:54 телепатия - дело тонкое... |
| Автор: Mayk 29.2.2008, 17:55 | ||
В си строки не ограничены 255 символами. это не исторический паскаль. |
| Автор: codelord 29.2.2008, 17:59 |
| просто по моему человек не правильно понял назначение типа char char это не Это 1 символ чтобы было больше нужно больше 255 char -ов например char abra[1024]; // здесь 1024 символа т/е массив из 1024 char надеюсь разницу уловил. вообще юзай std::string если тебе нужно работать со строками. |
| Автор: dembel 29.2.2008, 18:01 | ||
У меня есть программа которая разбивает строку на слова (массивы из 12 элементов), и выводит это все, аозникла проблема первые 16 слов выводит а дальше нет, 17,18.....n не выводит |
| Автор: codelord 29.2.2008, 18:02 |
| да не сказал для человека выше 255 это ограничение 8 бит в пределах одного байта те не путаем мух и котлеты |
| Автор: Alek86 29.2.2008, 18:02 |
| код можно поглядеть? |
| Автор: codelord 29.2.2008, 18:02 | ||
код в студию |
| Автор: vinter 29.2.2008, 18:17 |
а ты сам собери что нибудь на BC 3.1 например, и увидишь |
| Автор: dembel 29.2.2008, 18:24 | ||
codetext- это строка которая береться из файла. Ошибку получилось исправить вписав вместо 256 цифру 4096, но через некоторое время работы програмы выскакивает ошибка |
| Автор: codelord 29.2.2008, 18:58 | ||
| у меня на данном примере ошибка не воспроизводится надо видеть больший код подозрение на выход за границы WordTxt + надо видеть данные на которых споткнулась прога и реально ли все что ты грузишь вмещается в объявленный массив [32][256] если можешь отредактируй фрагмент ниже чтобы ошибка воспроизвелась
|
| Автор: prof_GCC 29.2.2008, 21:53 |
| [quote] У меня есть программа которая разбивает строку на слова (массивы из 12 элементов), и выводит это все, аозникла проблема первые 16 слов выводит а дальше нет, 17,18.....n не выводит [/quotе] Это не тип char виноват, выложи код скажем где ошибка, мы не телепаты, а вопрос действительно некорректный Добавлено через 5 минут и 40 секунд А приведенный код говорит только о твоем не профессианолизме, где гарантия что там всего 32 слова? Кроме того пишешь код на C пиши на С, а если юзаешь С++ то почему не использовать string |
| Автор: ShavarRsh 29.2.2008, 23:14 |
| |
| Автор: prof_GCC 1.3.2008, 09:39 |
| Естественно это уже говорилось и не раз, тип char это всего лишь один байт, и как не крути туда не всунешь больше одного символа, просто человек вопрос не корректно составил, он думал, что строка не может быть больше 255 символов, поэтому я и поясняю что строка символов, это всего навсего массив char ограниченный 0 т.е. в char a[256] поместится строка из 255 символов, а размер его ограничен только твоей фантазией и размерами ОЗУ |
| Автор: vinter 1.3.2008, 15:46 | ||
так то он так, только вот под ДОС компиляторами ,насколько я помню, у ф-ий ограничение по работе с строками в 255 символов. |
| Автор: ShavarRsh 1.3.2008, 18:40 |
| А, понятно. Ну тогда уж лучше std::string, чем char* |
| Автор: dembel 2.3.2008, 13:15 |
| спасибо всем, все вроде получилось, есть еще один вопрос как в переменную int записать число в 12 знаков? |
| Автор: Fazil6 2.3.2008, 13:53 |
ну если бы туда можно было записать такое число, то повидимому, вопрос у тебя не возник бы. |
| Автор: dembel 2.3.2008, 14:04 |
| а какую тогда тип переменных нужно использовать? я встрчал __int64 то что то н понял как с ними работать |
| Автор: JackYF 2.3.2008, 14:19 |
| dembel, на 32-битных системах тебе поможет long long |
| Автор: bsa 2.3.2008, 17:19 |
| dembel, код в студию |
| Автор: seravr 9.1.2009, 17:45 |
| спасибо автору тему, пеплохо посмеялся |