Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как в char записать больше 255 символов? 
:(
    Опции темы
Alek86
Дата 29.2.2008, 18:02 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: нет
Всего: 25



код можно поглядеть?


--------------------
user posted image    user posted image
PM MAIL   Вверх
codelord
Дата 29.2.2008, 18:02 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 1
Всего: 39



Цитата(dembel @  29.2.2008,  14:01 Найти цитируемый пост)
У меня есть программа которая разбивает строку на слова (массивы из 12 элементов), и выводит это все, аозникла проблема первые 16 слов выводит а дальше нет, 17,18.....n не выводит 

код в студию



--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
vinter
Дата 29.2.2008, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



Цитата(codelord @  29.2.2008,  19:02 Найти цитируемый пост)
код в студию

а ты сам собери что нибудь на BC 3.1 например, и увидишь smile


--------------------
Мой блог
PM MAIL WWW   Вверх
dembel
Дата 29.2.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 2.2.2008

Репутация: нет
Всего: нет



Код

сhar WordTxt[32][256];
char* token;
int i = 0, j;
token= new char [256];
if (token = strtok(codetext, " "))
 {
  strncpy(WordTxt[i++], token, 256);
  while (token = strtok(NULL, " "))
  strncpy(WordTxt[i++], token, 256);
 }

codetext- это строка которая береться из файла.

Ошибку получилось исправить вписав вместо 256 цифру 4096, но через некоторое время работы програмы выскакивает ошибка
PM MAIL   Вверх
codelord
Дата 29.2.2008, 18:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 1
Всего: 39



у меня на данном примере ошибка не воспроизводится
надо видеть больший код подозрение на выход за границы WordTxt
+ надо видеть данные на которых споткнулась прога и реально ли все что ты грузишь вмещается  в объявленный массив [32][256]
если можешь отредактируй фрагмент ниже чтобы ошибка воспроизвелась  
Код

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
 while( true ) 
 { 
 char codetext[] = "erk lwkjr l kewjre ljrklk l ewrlkjewr ";
 char WordTxt[32][256];
 char *token = new char[256];
 int i = 0, j;
 if (token = strtok(codetext, " "))
 {
  strncpy(WordTxt[i++], token, 256);
  while (token = strtok( NULL, " " ) )
  strncpy(WordTxt[i++], token, 256);
 }
 for( int k = 0; k < i; ++ k )  
    { 
        printf( "%s\n", WordTxt[k] );
    }
  delete[] token; 
 }
 return 0;
} 



Это сообщение отредактировал(а) codelord - 29.2.2008, 19:10


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
prof_GCC
Дата 29.2.2008, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 21.2.2008

Репутация: нет
Всего: нет



[quote]
У меня есть программа которая разбивает строку на слова (массивы из 12 элементов), и выводит это все, аозникла проблема первые 16 слов выводит а дальше нет, 17,18.....n не выводит
[/quotе]
Это не тип char виноват, выложи код скажем где ошибка, мы не телепаты, а вопрос действительно некорректный

Добавлено через 5 минут и 40 секунд
А приведенный код говорит только о твоем не профессианолизме, где гарантия что там всего 32 слова? Кроме того пишешь код на C пиши на С, а если юзаешь С++ то почему не использовать string
PM MAIL   Вверх
ShavarRsh
Дата 29.2.2008, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.3.2007

Репутация: нет
Всего: нет



 smile  В переменную типа сhar можно записать только один символ. Туда даже два символа не поместятся, не говоря уже о 256  smile 

Это сообщение отредактировал(а) ShavarRsh - 29.2.2008, 23:16
PM MAIL   Вверх
prof_GCC
Дата 1.3.2008, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 21.2.2008

Репутация: нет
Всего: нет



Естественно это уже говорилось и не раз, тип char это всего лишь один байт, и как не крути туда не всунешь больше одного символа, просто человек вопрос не корректно составил, он думал, что строка не может быть больше 255 символов, поэтому я и поясняю что строка символов, это всего навсего массив char ограниченный 0 т.е. в char a[256] поместится строка из 255 символов, а размер его ограничен только твоей фантазией и размерами ОЗУ smile
PM MAIL   Вверх
vinter
Дата 1.3.2008, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



Цитата(prof_GCC @  1.3.2008,  10:39 Найти цитируемый пост)
 это всего навсего массив char ограниченный 0 т.е. в char a[256] поместится строка из 255 символов, а размер его ограничен только твоей фантазией и размерами ОЗУ

так то он так, только вот под ДОС компиляторами ,насколько я помню, у ф-ий ограничение по работе с строками в 255 символов.


--------------------
Мой блог
PM MAIL WWW   Вверх
ShavarRsh
Дата 1.3.2008, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.3.2007

Репутация: нет
Всего: нет



А, понятно. Ну тогда уж лучше std::string, чем char*

Это сообщение отредактировал(а) ShavarRsh - 1.3.2008, 18:45
PM MAIL   Вверх
dembel
Дата 2.3.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 2.2.2008

Репутация: нет
Всего: нет



спасибо всем, все вроде получилось, есть еще один вопрос как в переменную int записать число в 12 знаков?
PM MAIL   Вверх
Fazil6
Дата 2.3.2008, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



Цитата(dembel @  2.3.2008,  12:15 Найти цитируемый пост)
как в переменную int записать число в 12 знаков?


ну если бы туда можно было записать такое число, то повидимому, вопрос у тебя не возник бы.
PM MAIL   Вверх
dembel
Дата 2.3.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 2.2.2008

Репутация: нет
Всего: нет



а какую тогда тип переменных нужно использовать? я встрчал __int64 то что то н понял как с ними работать
PM MAIL   Вверх
JackYF
Дата 2.3.2008, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



dembel, на 32-битных системах тебе поможет long long


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
bsa
Дата 2.3.2008, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



dembel, код в студию
PM   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0740 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.