Форум программистов, компьютерный форум CyberForum.ru

Файлы, потоки... - C++

Восстановить пароль Регистрация
 
Александр Елис
3 / 3 / 1
Регистрация: 20.05.2010
Сообщений: 50
08.08.2010, 20:10     Файлы, потоки... #1
Доброго Вам времени суток, уважаемые программисты!
Прошу объяснения следующих вопросов.
1) Каким образом реализованы сами файлы. (имею ввиду, каким образом я могу оперировать файлами, не используя стандартных классов[ну и тем более этого FILE]) {т.е, допустим, я хочу написать класс файл. с чего начать?}
2) Потоки... каким образом реализованы они. Как написать класс поток, не используя заготовок.
3) Почему не работает этот кусок кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void File::fSetSize()
{
    ifstream* file = NULL;
    char ch;
    if(cPatch==NULL)
    {
        cout << "\nMissing file to get size\n";
        return;
    }
    while(true)
    {
        file = new ifstream(cPatch);
        while((!file->eof())||(!file->fail()))
        {
            *file  >> ch;
            cout << "\n" << ch << endl;
            iSize++;
        }
    }
    return;
}

cPatch - char*, полный путь текстового файла. iSize - размер файла, который я пытаюсь узнать. На выводе получается много больше символов, чем есть в файле. Притом, символы только те, которые есть в файле. Что же не так?
ЗЫ. Заранее спасибо!!!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2010, 20:10     Файлы, потоки...
Посмотрите здесь:

C++ файлы-потоки
C++ Файлы и потоки
C++ Файлы. Потоки
C++ потоки и файлы
C++ Потоки и файлы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
08.08.2010, 20:24     Файлы, потоки... #2
1. Если Вы считаете, что FILE - это класс, то Вы ошибаетесь. Если не ошибаюсь это структура, которая работает на C.
Чтобы начать писать свой класс, нужно изучить функции для работы с файлами.
2. Вопрос не понял. Но думаю поможет: http://www.cyberguru.ru/programming/...p4-page40.html
3. В Вашем коде бесконечный цикл с 12 по 20 строки. Зачем Вам while(true)?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
08.08.2010, 20:32     Файлы, потоки... #3
Александр Елис,
1) физически текстовый файл - это некая последовательность байтов на диске. Кроме того у каждого файла есть набор мета-данных (дата создания/доступа/изменения, владелец, права доступа, etc... Точный набор этих данных зависит от системы.). Для работы с файлами в *NIX есть системные вызовы open()/read()/write()/close(). В WinAPI должно быть что-нибудь подобное. Начните с изучения этих моментов.
2) настоятельно рекомендую изучить работу с существующими классами потоков, а потом уже браться за разработку собственного.
3) опять же настоятельно рекомендую изучить работу с классами потоков...
Александр Елис
3 / 3 / 1
Регистрация: 20.05.2010
Сообщений: 50
08.08.2010, 20:37  [ТС]     Файлы, потоки... #4
Про то, что FILE - это не класс, а сишная структура, я отлично понимаю. Про функции работы с файлами: я хочу понять более фундаментальный уровень. Что именно представляет собой файл, каким образом написаны функции для работы с ним. За ссылку спасибо. Ну а про бесконечнй цикл - спасибо, что-то я перезанимался сегодня...

Добавлено через 2 минуты
Спасибо огромное всем откликнувшимся. Тему можно закрывать.
Yandex
Объявления
08.08.2010, 20:37     Файлы, потоки...
Ответ Создать тему
Опции темы

Текущее время: 04:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru