Всех приветствую! Как вы обрабатываете длинные числа long long int при помощи scanf в Си? Компилятор gcc. Можно конечно создать переменную типа char и потом заюзать преобразование при помощи функции atoll. На плюcах я не заморачиваюсь, беру потоки cin и cout. printf при этом "%lld" понимает, а вот scanf начинает выбрасывать ворнинги. Код (Text): gcc -std=c99 -Wall -s -O2 -o lli.exe lli.c long.c: In function 'main': long.c:8:8: warning: unknown conversion type character 'l' in format [-Wf scanf("%lld", &li); ^ long.c:8:8: warning: too many arguments for format [-Wformat-extra-args] Дополнительно юзаю флаг -std=c99, так как поддержка модификатора l появилась в c99.
Юзайте низкий уровень или хоть прочтите http://www.c-cpp.ru/content/scanf вообще я бы сделал через пайпы
Читал на cppreference en. Низкий левел асм что ли? Не, лучше уж тогда потоки плюсов заюзать и не извращаться.
При чем асм и низкий левел? Я имел ввиду низкий уровень программирования, потоки я не пойму при чем здесь. Я говорил про натив или просто пайпы, для вас лично пайп - именованный канал там. ADD: я понял про потоки, но нафиг надо они либы за собой потянут лишние, вес и etc
Какая версия gcc? На самой старой версии, которая предлагается (4.4.7), работает https://wandbox.org/permlink/Sy6N943ofXHL8KMy
Ronin_, Это всё опенсорсное и подробно описано. RET, > я бы сделал через пайпы Пайпы значит.. профайл по ним снимите для начала, ну что бы понять какие это тормоза. Данный механизм давно уже устарел.
Indy_, а printf к примеру как и вообще весь функционал stdin/stdout по вашему что юзает? + рантаймовского говна за собой тянуть? можно написать чисто самому на пайпах.
RET, > а printf к примеру как и вообще весь функционал stdin/stdout по вашему что юзает? Механизм выбирается в зависимости от дебаг порта. Это прерывание/исключение либо сервис. Пайпы(каналы) механизм столь медленный, профайл медленее на порядки чем у lpc. Прекращайте курить дурь и начните курить матчасть наконец.