Читайте также:
|
|
Для каждого текстового режима существует его бинарный аналог. Не всегда можно отличить, какой режим используется, поэтому мы рассмотрим специальный пример, который продемонстрирует нам отличие этих двух режимов. Итак, на Си бинарный режим определяется добавлением литеры «b».
Текстовый режим | r | w | a | r+ | w+ | a+ |
Бинарный режим | rb | wb | ab | rb+ | wb+ | ab+ |
Рассмотрим следующую задачу: подсчитать количество символов в файле. Данную задачу можно легко решить, считав содержимое файла посимвольно. Необходимо использовать переменную-счетчик.
//Функция подсчета размера файла
int getFileSize(FILE* file) {
//Помещаем файловый указатель в начало
rewind(file);
int size = 0;
while(!feof(file)) {
fgetc(file);
size++;
}
return size;
}
int main() {
//Открываем файл в текстовом режиме
FILE* txtFile = fopen("tutorial.cpp", "r");
//Открываем файл в бинарном режиме
FILE* binFile = fopen("tutorial.cpp", "rb");
cout<<"Размер файла в текстовом режиме:" << endl;
cout << getFileSize(txtFile) << "байт" << endl;
cout<<"Размер файла в бинарном режиме:" << endl;
cout << getFileSize(binFile) << "байт" << endl;
return 0;
}
Дело в том, что текстовый режим отличается от бинарного тем, что текстовый режим игнорирует некоторые специальные символы, например, символы форматирования. В данном случае разница равна количеству строк в файле: количеству символов возврата каретки.
Дата добавления: 2015-08-17; просмотров: 61 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Чтение файла целиком | | | Произвольный доступ к файлу |