powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что за ..? atoi
6 сообщений из 6, страница 1 из 1
Что за ..? atoi
    #34306890
sax___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть код:

Код: plaintext
1.
2.
3.
char tmp[ 16 ];
memset(tmp,  0 ,  16 );
. . . //здесь temp становится равным "\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"
int y = atoi(tmp);

И в конечном итоге y становится равным 0 вместо 17. В Чем дело?
...
Рейтинг: 0 / 0
Что за ..? atoi
    #34307022
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sax___ пишет:

> char tmp[*16*];
> memset(tmp, *0*, *16*);
> . . . //здесь temp становится равным "\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"
> int y = atoi(tmp);
>
>
> И в конечном итоге y становится равным 0 вместо 17. В Чем дело?

А чему ж она еще будет равна ?

\x11 == Ctrl-Q - управляющий символ какой-то. atoi разбирает
строку до первого нецифрового символа. Вот ноль и получится.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Что за ..? atoi
    #34307031
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем тут вообще atoi ?
если я правильно понимаю желаемое, то нужно что-то в таком духе:
Код: plaintext
int y = tmp[ 3 ]<< 24 +tmp[ 2 ]<< 16 +tmp[ 1 ]<< 8 +tmp[ 0 ];
только со знаковостью еще надо не напутать...
...
Рейтинг: 0 / 0
Что за ..? atoi
    #34307065
sax_____
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да я уже догадался. Понедельник, млин. Поработал с DLL так что IDE "снесло"
...
Рейтинг: 0 / 0
Что за ..? atoi
    #34308921
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
Код: plaintext
int y = tmp[ 3 ]<< 24 +tmp[ 2 ]<< 16 +tmp[ 1 ]<< 8 +tmp[ 0 ];
мощно задвинул
Код: plaintext
int y = *(int*)tmp;
...
Рейтинг: 0 / 0
Что за ..? atoi
    #34309029
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo miksoft
Код: plaintext
int y = tmp[ 3 ]<< 24 +tmp[ 2 ]<< 16 +tmp[ 1 ]<< 8 +tmp[ 0 ];
мощно задвинул
Код: plaintext
int y = *(int*)tmp;
Мне так оно нагляднее показалось :)
Через указатель, конечно, оптимальнее при точно совпадающем порядке байтов.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что за ..? atoi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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