чтение из файла
Желательно посимвольно.
при чтении файла все нормально читается только до символа, который в досе выглядит как стрелочка вправо. Как прочитать файл целиком???
Желательно посимвольно.
надо использовать функции:
fopen()- открытие файла для чтения
fdopen()- открытие файла для записи
freopen() - открытие файла для чтения и записи
Все три функции возвращают указатель файла.
Например так -
pfinfile=fopen("input.dat","r");
getc()- читает один символ из указанного файлового потока
int ic;
ic=getc(stdin);
Если надо создаешь символьный массив и перемещаешь туда все символы из файлового потока.
причем если пытаешься прочитать сразу весь файл в буфер то все символы после этой стрелочки это '='(в буфере). Сам символ вообще не читается хотя если делаешь fseek на позицию за него то после все опять нормально читается до следующего такого символа. Пытался прочитать и fread и getc и fstream f; f.open f.read - одно и тоже. Причем такая фишка была както раньше с getc, но с помощью fread все читалось нормально.
именно так я и делал
причем если пытаешься прочитать сразу весь файл в буфер то все символы после этой стрелочки это '='(в буфере). Сам символ вообще не читается хотя если делаешь fseek на позицию за него то после все опять нормально читается до следующего такого символа. Пытался прочитать и fread и getc и fstream f; f.open f.read - одно и тоже. Причем такая фишка была както раньше с getc, но с помощью fread все читалось нормально.
Символ "стрелочка влево" - это Ctrl-Z (код 0x1a), обозначающий конец файла в текстовых файлах. Если вы открыли файл через fopen и во втором параметре указали символ "t", то он откроется в текстовом режиме и вы не сможете читать после конца файла (даже если "t" не указывать, он тоже может открыться в текстовом режиме - по умолчанию). Поэтому в таких случаях всегда нужно ставить символ "b", тогда файл откроется в двоичном режиме и все символы будут читаться вплоть до реального конца файла.
Символ "стрелочка влево" - это Ctrl-Z (код 0x1a), обозначающий конец файла в текстовых файлах. Если вы открыли файл через fopen и во втором параметре указали символ "t", то он откроется в текстовом режиме и вы не сможете читать после конца файла (даже если "t" не указывать, он тоже может открыться в текстовом режиме - по умолчанию). Поэтому в таких случаях всегда нужно ставить символ "b", тогда файл откроется в двоичном режиме и все символы будут читаться вплоть до реального конца файла.
Благодарю за разъяснения. Только что увидел на этом сайте справочник по функциям. Могли бы справочники в отдельную графу вынести кстати, яб глупых вопросов не задавал:). Да и не только я :(.