| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > проблема с fread/fwrite под UNIX/WIN |
| Автор: hente 15.5.2010, 08:50 |
| Всем привет пишу в файл данные, под линуксом все отлично работает когда скомпилил под винду тоже самое появилась проблема когда читает символ 1D то воспринимает его как конец файла :((( но это далеко не конец!! Конечно же сразу поставил флаг "b" по документации вроде как игнорируются спец символы! Но все равно fread поспринимает его как конец файла!!! чем его можно заменить или заставить адекватно работать ??? За ранее благодарствую,.... |
| Автор: boostcoder 15.5.2010, 23:49 |
| код, как создаешь файл, записываешь, открываешь, читаешь. |
| Автор: Earnest 17.5.2010, 19:23 |
| Что-то я сомневаюсь, что проблема в символе 1d. Даже если бы был текстовый режим, то 1d это никак не конец файла. Да и нет никакого символа "конец файла": файл кончается, когда последний байт прочитан, вот и все. Возможно ты неправильно интерпретируешь возвращаемое значение fread или что-то вроде. |
| Автор: xvr 17.5.2010, 22:17 | ||||||||
Угу
Кусок из CRT - функция read
|
| Автор: borisbn 18.5.2010, 06:36 | ||
xvr,
Насколько я понял, это для варианта с буковкой "t" в fopen, а ТС сказал, что ставил "b". Скорее всего, проблема в другом, т.к. 1D никак не равен CTRLZ hente, сделай простенькую программку из трёх строк и проверь. Если не заработает - код в студию + входной файл в аттаче |
| Автор: Earnest 18.5.2010, 07:15 |
Ну, может быть. Но я сколько не писала-читала текстовые файлы, как-то обходилась... С другой стороны, если посмотреть текстовый файл как бинарный - нет там такого символа... Разве что система при чтении добавляет... |
| Автор: xvr 18.5.2010, 08:06 | ||||||
Или без буковок (bt) вообще
|
| Автор: hente 18.5.2010, 11:03 |
| Извеняюсь ошибся я про 1В.....на самом деле 1А Биру просто записываю в цикле последовательность чисел типа инт все пишет под линуксом ОК(и читает ОК) а вот когда под виндой читаю тофункция фреад как до ходит до числа 26 (в хекс 1А) то все перестает читать......решил попробовать функции read/write/open щас сделаю отпишусь... |
| Автор: Earnest 18.5.2010, 15:39 |
Смотря как ты их пишешь. Если в текстовом режиме, то 1A никак не попадется. А если в бинарном - то 1A никому не мешает. Может ты открывашь файл в текстовом режиме, а сам туда двоичные данные пишешь, не преобразовывая инты в строки? Иначе откуда read... |