2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Работа с нетекстовыми файлами в C
Сообщение07.12.2015, 23:41 
Насколько мне известно, все примеры работы с файлами в C/C++ предназначены для текстовых файлов. Но что делать, если файл - нетекстовый, и мне нужно обратиться к нему в коде, считать какие-то биты и так далее? Да и как понять, как такой файл устроен (то есть что считывать)?

P.S. Работаю в Windows.

 
 
 
 Re: Работа с нетекстовыми файлами в C
Сообщение07.12.2015, 23:52 
lv00 в сообщении #1080444 писал(а):
Да и как понять, как такой файл устроен (то есть что считывать)?
Никак. Бинарные файлы устроены все по-разному. Иногда у файла есть сигнатура — сколько-то байтов с фиксированными значениями в начале или на другом фиксированном месте. Иногда нет. Иногда расширение файла что-то значит. Самый правильный способ узнать формат файла — это узнать, откуда он.

 
 
 
 Re: Работа с нетекстовыми файлами в C
Сообщение08.12.2015, 00:02 
Аватара пользователя
Открывайте файл как бинарный и вместо символов будете работать с байтами. А уж байты разложите на биты.

 
 
 
 Re: Работа с нетекстовыми файлами в C
Сообщение08.12.2015, 09:23 
Можно сказать, что в общем случае файл, в том числе и текстовый, можно рассматривать как одномерный байтовый массив.

 
 
 
 Re: Работа с нетекстовыми файлами в C
Сообщение08.01.2016, 00:37 
Аватара пользователя
текстовые файлы - это подмножество бинарных.
открыть файл, как текстовый, грубо говоря, означает - протащить его через процессор (программу), которая в потоковом режиме будет делать вид, что наводит порядок в текстовых сигнатурах, считая, что файл содержит текст - например, переводах строк, которые могут кодироваться 13-м и 10-м символами, иногда только 13, иногда только 10.
если вы знаете, что работаете с текстовым файлом и ленивы, что бы не учитывать нюансы в его оформлении, открывайте файл как текстовый. в противном случае, можете работать с ним, как с бинарным.

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group