Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2009, 17:05   #21
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

тогда легче сделать так
unsigned char a[80];
pavelstraut вне форума Ответить с цитированием
Старый 26.07.2009, 17:08   #22
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от pavelstraut
тогда легче сделать так
unsigned char a[80];
Ну попробуйте ) Только вот getline принимает char*, а не unsigned char*.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.07.2009, 17:09   #23
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

вот именно
теперь не компилится
pavelstraut вне форума Ответить с цитированием
Старый 26.07.2009, 17:15   #24
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

Sazary спасибо что помогаете начинающим программистам
pavelstraut вне форума Ответить с цитированием
Старый 26.07.2009, 22:29   #25
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

еще вопрос
когда мы прибавили 256 к числу допустим получили 130 мы опять его запихиваем в строку(т.е. в переменную типа char) но она же имеет границы от -128 до 127
ответьте пожалуйста
pavelstraut вне форума Ответить с цитированием
Старый 26.07.2009, 23:13   #26
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Если чесно я не совсем понял вопрос. Переформулируйте. Но могу сказать одно вместо 256 символа выведется пустота. Что бы лучше понять этот момент воспользуйтесь программой:

Код:
int main()
{
        for (int i=0;i<=256;i++)
                cout << (char)i;
        cin.get();
        return 0;
}
Выводит ASCII символы.

Последний раз редактировалось profi; 26.07.2009 в 23:20.
profi вне форума Ответить с цитированием
Старый 27.07.2009, 00:28   #27
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Ограничение от -128 до 127 условное, тип char это 8 бит. Самый крайний левый бит принято называть знаковым, если он 1, то число считается отрицательным. Начиная со 128 самый левый бит становится единицей. 130 влезает в 8 бит, потому всё нормально присвоится, только при выводе вы получите не 130, а минус 126.
netrino вне форума Ответить с цитированием
Старый 27.07.2009, 08:48   #28
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

char a=130;
cout<<a;(выводит В)
int b=a;
cout<<b;(выводит -126)
как чар понимает что ей нужно вывести 130ый символ если у ней диапазон [-128;127]
и почему только при переходе в int это число становится -126

Последний раз редактировалось pavelstraut; 27.07.2009 в 11:03.
pavelstraut вне форума Ответить с цитированием
Старый 27.07.2009, 12:29   #29
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от pavelstraut Посмотреть сообщение
char a=130;
cout<<a;(выводит В)
int b=a;
cout<<b;(выводит -126)
как чар понимает что ей нужно вывести 130ый символ если у ней диапазон [-128;127]
и почему только при переходе в int это число становится -126
Для signed char вызывается ф-ция, которая воспринимает его как аски-символ, для int вызывается ф-ция, которая переводит его в аски-строку и затем выводит. Это всё решается на стадии компиляции(для какого типа какую ф-цию вызывать)
И, как я говорил, ограничение от -128 до 127 условное. Максимальное положительное значение, которое может содержать один байт это 255.
netrino вне форума Ответить с цитированием
Старый 27.07.2009, 12:33   #30
pavelstraut
Пользователь
 
Регистрация: 17.07.2009
Сообщений: 91
По умолчанию

да если указать тип unsigned
внутри компьютера в одном байте код у 255 и у -1 одинаков и только по типу переменной компилятор определит какое число перед ним

но внутри переменной чар хранится в данный момент число -126?

Последний раз редактировалось Sazary; 27.07.2009 в 12:39.
pavelstraut вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто поможет оптимизировать прогу, а то я уже оптимизировал как мог :) Droid Помощь студентам 7 12.05.2008 20:56
Находжение разницы годов в SQL запросе Yurk@ БД в Delphi 13 01.03.2008 09:32
как сделать что бы пользователь мог изменять пароль и вводить свой? Илюха Общие вопросы Delphi 13 05.10.2007 14:58
не могу понять... Dutchman Паскаль, Turbo Pascal, PascalABC.NET 4 14.12.2006 07:14