Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
frostfox
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 5
#1

long long r char[] __int64 - C++

15.03.2013, 15:29. Просмотров 1247. Ответов 6
Метки нет (Все метки)

Добрый день возник следующий вопрос: мне требуется преобразовать тип long long в char, при этом код должен быть переносимым (т.е. мне надо чтобы программа заработала и под Visual Studio и на UNIX с gcc компилятором). Какими функциями можно воспользоваться? Если sprintf то какой спецификатор универсален для различных компиляторов?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2013, 15:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос long long r char[] __int64 (C++):

Как char[] перевести в битовую маску long long(64 бита) и наоборот? - C++
Как char перевести в битовую маску long long(64 бита) и наоборот?

Как преобразовать const char * в long в С++, 0xE0E040BF в long - C++
Помогите пожалуйста преобразовать текст в число на C++ const char * value=cmd; long ircode = atol(value); ...

Преобразование массива char в массив long long - C++
Имеется большой массив char, в котором содержатся числа. Нужно максимально быстро извлечь их и записать в массив чисел long long. ...

Как преобразовать char[8] к unsigned long long? - C++
Требуется выполнить преобразование char к unsigned long long и обратно

Перевести большой массив char в long long - C++
Здравствуйте. Есть массив char c 3145360828. Надо его в int перевести. Пробовал с atoi, вместо int делал long long, не получалось,...

Написать функцию для перевода переменной типа long в символьную строку в шестнадцатиричном представлении ( ltoah( long num, char s[]) ) и тестирующую - C++
Написать функцию для перевода переменной типа long в символьную строку в шестнадцатиричном представлении ( ltoah( long num, char s) ) и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Evg
Эксперт CАвтор FAQ
17802 / 6008 / 387
Регистрация: 30.03.2009
Сообщений: 16,511
Записей в блоге: 26
15.03.2013, 16:27 #2
Если sprintf, то %llx для 16-ричной печати, %lld для десятичной, %llo для 8-ричной
2
frostfox
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 5
15.03.2013, 18:02  [ТС] #3
C++
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main ()
{
    long long a;
    a = 12;
    char buf [21];
    sprintf (buf, "%lld", a);
    printf ("%s", buf);
    return 0;
};
gcc: предупреждение: неопознанный символ преобразования «l» в формате [-Wformat]|
предупреждение: слишком много аргументов для форматирования [-Wformat-extra-args]|

компилятор не знаком? или что это значит.

и вот еще у меня под Visual Studio build проходит. А вот при запуске: Unhandled exception at 0x5399B478 (msvcr110d.dll) in Project2.exe: 0xC0000005: Access violation writing location 0x0000000C. При чем проблема выскакивает после того как число(ну buf) выведена на экран. Где про это можно почитать? Как с этим бороться? При чем тут какая-то dll вообще?
0
frostfox
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 5
15.03.2013, 18:31  [ТС] #4
Цитата Сообщение от Kastaneda Посмотреть сообщение
а так
то же самое.
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
15.03.2013, 18:34 #5
Цитата Сообщение от frostfox Посмотреть сообщение
gcc: предупреждение: неопознанный символ преобразования «l» в формате [-Wformat]|
предупреждение: слишком много аргументов для форматирования [-Wformat-extra-args]|
а у меня gcc нормально компилирует.

Добавлено через 38 секунд

Не по теме:

Цитата Сообщение от frostfox Посмотреть сообщение
то же самое.
угу, я свой пост выше исправил, думал никто не успел это заметить

0
frostfox
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 5
15.03.2013, 18:42  [ТС] #6
Цитата Сообщение от Kastaneda Посмотреть сообщение
а у меня gcc нормально компилирует.
у меня на другой системе тоже все нормально.
я вот просто думаю этот gcc старенький, его отец еще чуть ли не 5 лет зад ставил. может просто стандарт long long им еще не поддерживается?
0
Evg
Эксперт CАвтор FAQ
17802 / 6008 / 387
Регистрация: 30.03.2009
Сообщений: 16,511
Записей в блоге: 26
15.03.2013, 19:18 #7
Цитата Сообщение от frostfox Посмотреть сообщение
я вот просто думаю этот gcc старенький, его отец еще чуть ли не 5 лет зад ставил. может просто стандарт long long им еще не поддерживается?
Для этого нужно, чтобы он был ну очень стареньким. Лет 15-20. Версию посмотри (запустить "gcc -v"). Либо у тебя какая-то IDE, в которой включен режим -ansi или что-то типа того. В стандарте Си-89 нету типа long long, хотя по факту он есть почти на всех компиляторах
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2013, 19:18
Привет! Вот еще темы с ответами:

Не понятный undefined reference to `unsigned long long f<unsigned long long, void> - C++
test.cpp: #include &lt;iostream&gt; template &lt;typename FormalType, typename FactType = typename std::enable_if&lt;std::is_same&lt;FormalType,...

Тип long long и его ввод\вывод с использованием scanf\printf - C++
Добрый день! Мне в программе надо вывести и ввести, соответственно, некоторые данные с помощью scanf и printf. По сути у меня выглядит...

Нюансы синтаксиса: что означает запись typedef long long i64 ? - C++
Что означает эта строчка? typedef long long i64; Как я понял, функция typedef позволяет добавить имя типу данных. Но зачем long...

Возведение в степень по модулю для чисел близких к max long long - C++
Даны числа A,B,C&lt;=2^63-1 Надо посчитать A^B mod С. прошу не выкладывать стандартный алгоритм для Int, так как неверный ответ в итоге...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.03.2013, 19:18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru