powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помощь по работе с указателями
17 сообщений из 17, страница 1 из 1
Помощь по работе с указателями
    #34772737
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему функция GetInt не возвращает нужно значение?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
#include <stdio.h>
#include <conio.h>
#include <mem.h>
#include <stdlib.h>

#pragma hdrstop
#pragma argsused

int getInt(unsigned char* buff, int first, int count) {
	char tmp[ 16 ];
	memset(tmp,  0 ,  16 );
	for (int i =  0 ; i < count; i++) {
		tmp[i] = buff[i + first];
	}
	return atoi(tmp);
}
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
        unsigned char buff[ 16 ];
        memset(buff,  0 ,  16 );

	for (int x =  0 ; x <  15 ; x++)
	        buff[x] = x +  1 ;

         long res = getInt(buff, 0 , 3 );

        printf("%d", res);

        getch();
        return  0 ;
}
//---------------------------------------------------------------------------
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34772829
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что char(1) - это это вообще непечатный символю
вместо вот этого buff[x] = x + 1;
напиши buff[x] = x + '1';
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34772976
FullKettle_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blindedПотому что char(1) - это это вообще непечатный символю
вместо вот этого buff[x] = x + 1;
напиши buff[x] = x + '1';
Ошибка точно не в этом. bгаа после цикла - "x01\x02\x03....."

Значение теряется при выходе из функции - передачи значения
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34773041
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullKettle_ wrote:

> Ошибка точно не в этом. bгаа после цикла - "x01\x02\x03....."
>
Ошибка как раз таки в этом.
\x01 - это символ с кодом 01, а не буква '1'. Чем будет сивмол с кодом 01,
зависит от кодировки, в ms-dos это улыбающаяся рожица может быть, например.
Сделайте, как вам посоветовали x + '1';

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34773959
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что должно получиться? 123?
ErVСделайте, как вам посоветовали x + '1';14+'1' – это скока?
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34774037
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoЧто должно получиться? 123?
ErVСделайте, как вам посоветовали x + '1';14+'1' – это скока?
63
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34774041
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullKettle maXmoЧто должно получиться? 123?
ErVСделайте, как вам посоветовали x + '1';14+'1' – это скока?
63

'14' - 49
49 + 14 = 63
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34774800
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для бестиолковых
код 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
символ 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34774895
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedДля бестиолковых
код 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
символ 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @
Это мы знаем


Код: plaintext
printf("%d",  14  + '1');
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34775010
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда по-русски объясни чего хотел?
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34775322
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может, так?
Код: plaintext
1.
int num= 0 ;
for(int i= 0 ; i<count; i++) num=num* 10 +tmp[i];
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34775697
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo wrote:

> 14+'1' ? это скока?
Это символ '?'.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34778045
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я не пойму: 0x48 и '0' - это одно и тоже?
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34778318
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0x30, 48 и '0'
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34778322
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
цифарка цифарке рознь
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34779030
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскажите функцию, обратную данной
Код: plaintext
sprintf((char*)buff, "%01x", value);
т.е. шестнадцатиричное в десятичное
...
Рейтинг: 0 / 0
Помощь по работе с указателями
    #34779183
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sscanf
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помощь по работе с указателями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]