![]() |
[C++] читаем фаил.torrent
Создавал тему в болталке, но там както несложилось. Теперь создаю тут так как код пишу на С++ в linux.
Вобщем надо разобрать торрентфайл и получить из него хеш сумму файла, тобишь поле pieces. Из спецификации Цитата:
Код:
ifstream ftor (fname.c_str(), ifstream::in);Код:
getline(ftor, line);- В начале идет все как по спецификации все поля их значения в обычном символьном виде. - После начала поля pieces: идет нечетабельная хрень - В конце опять читабельный строки по спецификации. Некак немогу понять как правильно считать чтобы вместо "нечетабельной хрени" получить коректную хешсумму. Или может эту нечетабельную хрень чемто конфертировать надо ? |
Цитата:
Быть может байтовые числа просто распознаются как символы? |
Цитата:
|
Попробуй конвертировать строку с хеш-суммой в число, например функцией atoi. Кстати, число в строке 16-ричные.
|
Nikituki сударь вы вообще о чем? функция atoi считывает числа в новую переменную до первой буквы, это вообще не преобразования =) даже более скажу к SHA1 это не приемлимо так как смотрим на пример хеша
da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709 ) |
Цитата:
Цитата:
|
Nikituki ничего я тут как пример привел неприменимости атои из за выше указанных обстоятелств =)
|
---------
|
В таком случаем разбиваем строку и юзаем strtol..
|
маленькая заминка, строл хочет чтобы ей передали строку читабельную, тобишь с нормальными символами. А у меня "нечетабельная хрень" %)
делаю Код:
cout<<strtol(string(STR_SR, 0, 20).c_str(), &err,16)<<endl;и в итоге получаем в консоли Код:
0 |
| Время: 09:24 |