Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

чтение из файла

3.8K
29 сентября 2003 года
helpme
12 / / 29.09.2003
при чтении файла все нормально читается только до символа, который в досе выглядит как стрелочка вправо. Как прочитать файл целиком???
Желательно посимвольно.
435
30 сентября 2003 года
avatara
188 / / 07.07.2003
Цитата:
Originally posted by helpme
при чтении файла все нормально читается только до символа, который в досе выглядит как стрелочка вправо. Как прочитать файл целиком???
Желательно посимвольно.



надо использовать функции:
fopen()- открытие файла для чтения
fdopen()- открытие файла для записи
freopen() - открытие файла для чтения и записи
Все три функции возвращают указатель файла.
Например так -
pfinfile=fopen("input.dat","r");

getc()- читает один символ из указанного файлового потока
int ic;
ic=getc(stdin);

Если надо создаешь символьный массив и перемещаешь туда все символы из файлового потока.

3.8K
30 сентября 2003 года
helpme
12 / / 29.09.2003
именно так я и делал
причем если пытаешься прочитать сразу весь файл в буфер то все символы после этой стрелочки это '='(в буфере). Сам символ вообще не читается хотя если делаешь fseek на позицию за него то после все опять нормально читается до следующего такого символа. Пытался прочитать и fread и getc и fstream f; f.open f.read - одно и тоже. Причем такая фишка была както раньше с getc, но с помощью fread все читалось нормально.
461
30 сентября 2003 года
gerard
102 / / 20.12.1999
Цитата:
Originally posted by helpme
именно так я и делал
причем если пытаешься прочитать сразу весь файл в буфер то все символы после этой стрелочки это '='(в буфере). Сам символ вообще не читается хотя если делаешь fseek на позицию за него то после все опять нормально читается до следующего такого символа. Пытался прочитать и fread и getc и fstream f; f.open f.read - одно и тоже. Причем такая фишка была както раньше с getc, но с помощью fread все читалось нормально.



Символ "стрелочка влево" - это Ctrl-Z (код 0x1a), обозначающий конец файла в текстовых файлах. Если вы открыли файл через fopen и во втором параметре указали символ "t", то он откроется в текстовом режиме и вы не сможете читать после конца файла (даже если "t" не указывать, он тоже может открыться в текстовом режиме - по умолчанию). Поэтому в таких случаях всегда нужно ставить символ "b", тогда файл откроется в двоичном режиме и все символы будут читаться вплоть до реального конца файла.

3.8K
30 сентября 2003 года
helpme
12 / / 29.09.2003
Цитата:
Originally posted by gerard


Символ "стрелочка влево" - это Ctrl-Z (код 0x1a), обозначающий конец файла в текстовых файлах. Если вы открыли файл через fopen и во втором параметре указали символ "t", то он откроется в текстовом режиме и вы не сможете читать после конца файла (даже если "t" не указывать, он тоже может открыться в текстовом режиме - по умолчанию). Поэтому в таких случаях всегда нужно ставить символ "b", тогда файл откроется в двоичном режиме и все символы будут читаться вплоть до реального конца файла.



Благодарю за разъяснения. Только что увидел на этом сайте справочник по функциям. Могли бы справочники в отдельную графу вынести кстати, яб глупых вопросов не задавал:). Да и не только я :(.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог