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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2013, 17:45   #1
Berlioz
Изучающий C и ASM
Пользователь
 
Регистрация: 25.05.2012
Сообщений: 89
По умолчанию fscanf и байтовый массив

Предисловие
Всех приветствую! Взялся оптимизировать свой код. В моем случае можно переписать на ассемблер, что и хочу сделать, но не хочу отказываться от fscanf, т.к. жутко удобная функция.

Проблема: в файле есть матрица смежности (делаю обход), которую надо считать. Поскольку в матрице только единицы и нули, то целесообразно завести байтовый массив. Однако, я не знаю, как fscanf сказать, что мы считываем не четырехбайтовое число, а байтовое.

Что посоветуете?
Berlioz вне форума Ответить с цитированием
Старый 10.01.2013, 18:21   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Считывание символа (char, стандарт гарантирует, что его размер - 1 байт) - спецификатор %c.
Документация на fscanf().
Abstraction вне форума Ответить с цитированием
Старый 11.01.2013, 07:49   #3
Berlioz
Изучающий C и ASM
Пользователь
 
Регистрация: 25.05.2012
Сообщений: 89
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Считывание символа (char, стандарт гарантирует, что его размер - 1 байт) - спецификатор %c.
За идею спасибо! Не догадался.
P.S. Похоже, придется переделывать циклы под коды символов
Berlioz вне форума Ответить с цитированием
Старый 11.01.2013, 08:30   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от Berlioz Посмотреть сообщение
Поскольку в матрице только единицы и нули, то целесообразно завести байтовый массив.
Раз пишем на ассемблере, да еще и оптимизируем, тогда наверно надо завести битовый массив. Далее, зачем писать на ассемблере, если будем пользоваться С функциями, да еще и такими громоздкими...
waleri вне форума Ответить с цитированием
Старый 11.01.2013, 18:32   #5
Berlioz
Изучающий C и ASM
Пользователь
 
Регистрация: 25.05.2012
Сообщений: 89
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Раз пишем на ассемблере, да еще и оптимизируем, тогда наверно надо завести битовый массив.
Я тоже подумывал об этом, но тут же встали 2 вопроса:

1. Как выводить такую матрицу на экран
2. Как делать поиск по такой матрице. С битовым массивом

По поводу fscanf: я не знаю адекватную замену этой функции (с winapi еще не договорился)

Последний раз редактировалось Berlioz; 12.01.2013 в 09:29.
Berlioz вне форума Ответить с цитированием
Старый 11.01.2013, 20:39   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Например fgetchar() - читает тот же байт.
А выводить например так:
fputchar( ProveriaemBit(index) ? '1' : '0' );
waleri вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
fscanf и загрузка параметров Berlioz Общие вопросы C/C++ 0 16.12.2012 14:43
fscanf Артэс Общие вопросы C/C++ 2 04.10.2011 11:54
сериализовать и вывести на экран байтовый поток olka1198 Общие вопросы по Java, Java SE, Kotlin 1 28.10.2009 15:20
Как прочитать 10 байтовый тип вещественных чисел The REAL Общие вопросы .NET 3 05.09.2008 10:46
Байтовый тип. SanekIrk Общие вопросы Delphi 2 15.08.2008 21:37