Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 55, средняя оценка - 4.93
Mephistotel
#1

Узнать размер файла - C++

04.10.2008, 23:42. Просмотров 6991. Ответов 3
Метки нет (Все метки)

Мне нужно прочитать обычный текстовый файл. Я думаю это сделать с помощью одной из функций семейства get(). Для этого (и не только) мне нужно узнать длину файла (т.е. сколько считывать символов).
Мой первый (очень убогий) вариант:
считываю с помощью get() символы из файла, прибавляя каждый раз счетчик (чтобы узнать размер фалйа), потом закрываю его. Далее открываю снова файл, выделяю массив символов нужно размера, куда посимвольно считываю опять из файла. Думаю все итак ясно)) Хочется работоспособный способ)
Каким образом это можно сделать? Есть ли какие-либо для этого специальные константы и т.п. в классе ios?
Т.к. вывод форматированный (т.е. текст), то верно ли утверждение "количество символов = количеству байт в файле, т.к. под тип char отводится 1 байт"
И просвятите, пожалуйста ещё по нескольким вопросам:
1. В какой кодировке считывает файл программа, использующая стандартные средства С++ для работы с файлми (файловые потоки)?
2. Имеет ли вообще значение кодировка (как я понимаю что да)
3. В какой кодировке хранится текст в самом файле в формате .txt (полагаю что в ASCII)? Всегда ли так? Если в другой, то как правильно прочитать файл?
4. Если установить указатель на конец файла и считать указатель функцией tellp(), то будет ли это длина файла?
5. Каким образом в п.4 будут обрабатываться "конец файла", "\0" и " " (пробел)?
И если небольшой экскурс подробный по этим вопросам (можно с углублением), буду очень признателен!
Т.к. эти темы практически не освещаются (например Лафоре "ООП на С++" и т.п.)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2008, 23:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Узнать размер файла (C++):

Узнать размер файла - C++
Дорогие форумчане! Есть у меня есть файл xxxxx.clk(все данные в нем строчные), он весит n-ое количество мегабайт. Нужно задать массив...

Не выходит узнать размер файла - C++
#include <iostream> #include <fstream> void main() { std::ifstream input; long int size_of_file; ...

Узнать размер файла больше 4гб - C++
сабж какой функцией можно узнать размер файла больше 4 гб (+ другие св-ва - опционально)? ++ переносимость - не зависит от оси

Как узнать размер открытого файла - C++
#include <iostream> #include <fstream> #include <windows.h> #include <cstdlib> #include <stdio.h> using namespace std; ...

Как узнать текущий размер копируемого файла? - C++
Здраствуйте! Как узнать текущий размер копируемого файла? У HTML-их нашел, а как у других не знаю. Заранее благодарен. GigaBit.

Как узнать размер файла? (студия 2013) - C++
Доброго времени суток, форумчане и гости! Есть небольшой код и хочется прикрутить определитель размера файлов в папке. Должно выводить имя...

3
TGrey[WoLf]
39 / 39 / 1
Регистрация: 14.09.2008
Сообщений: 685
04.10.2008, 23:51 #2
Для этого есть команда... Я ее не помню, можешь в гугле поискать.
0
Vourhey
Почетный модератор
6486 / 2260 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
05.10.2008, 01:05 #3
1. есть файловые потоки и для ASCII, и для юникода.
2. Имеет.
3. Хех. В какой запишешь - в той и хранится.
4. Насколько помню, да.
5. Ошибка дальнейшего чтения.

Добавлено через 14 минут 15 секунд
А TGrey[WoLf] прав по поводу размера. Есть, например, GetFileSize...
0
TGrey[WoLf]
39 / 39 / 1
Регистрация: 14.09.2008
Сообщений: 685
05.10.2008, 12:18 #4
Возьми для примера создай 1 ТХТ файл сохрани на диск, посмотри его размер. Потом открой заново добавь 1 символ, сохрани и посмотри размер, добавь еще 1 символ и сново глянь размер и т.д.
0
05.10.2008, 12:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2008, 12:18
Привет! Вот еще темы с ответами:

Как узнать текущий размер файла, открытого для записи? - C++
File=CreateFile(FilePath.c_str(), GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);, потом в этот файл...

Узнать размер консоли - C++
Как узнать размер консольного окна, куда программа выводит данные? Сколько символов "влазит" по вертикали и горизонтали. ...

Узнать размер массива - C++
есть 2 указателя на первый элемент массива и указатель на элемент после последнего можно ли как-то узнать размер этого массива не...

Как узнать размер массива? - C++
Нужно узнать размер введенного пользователем массива, но sizeof() почему-то не работает, помогите пожалуйста разобраться! int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru