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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 113, средняя оценка - 4.76
Aero93
9 / 9 / 1
Регистрация: 19.12.2011
Сообщений: 35
#1

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

09.07.2012, 22:50. Просмотров 17672. Ответов 8
Метки нет (Все метки)

Дорогие форумчане! Есть у меня есть файл xxxxx.clk(все данные в нем строчные), он весит n-ое количество мегабайт. Нужно задать массив структур из этих строк. Почитал в интернете, нужно использовать библиотеки sys.h\types.h\stat.h . Но их нету в стандартном наборе ни CodeBlock'а, ни Builder'а, ни DEV'а... Покажите на примере, как это сделать?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2012, 22:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Узнать размер файла (C++):

Узнать размер файла - C++
Мне нужно прочитать обычный текстовый файл. Я думаю это сделать с помощью одной из функций семейства get(). Для этого (и не только) мне...

Не выходит узнать размер файла - 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++
Доброго времени суток, форумчане и гости! Есть небольшой код и хочется прикрутить определитель размера файлов в папке. Должно выводить имя...

8
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
09.07.2012, 23:18 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
попробуйте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
  fstream file("C:\\xxxxx.clk");
     int size = 0;
    file.seekg (0, std::ios::end);
    size = file.tellg();
    cout << "Вашь фаил весит : " << size << " баит" << endl;
    file.close();
return 0;
}
5
dr.curse
388 / 344 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
09.07.2012, 23:25 #3
Цитата Сообщение от Aero93 Посмотреть сообщение
Но их нету в стандартном наборе ни CodeBlock'а, ни Builder'а, ни DEV'а
во первых, то что вы перечислили это были IDE, во вторых плохо искали
Цитата Сообщение от xADMIRALx Посмотреть сообщение
Зачем заачем они ?
чтобы получить информацию о файле
вот пример

C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <sys/stat.h>
int main()
{
    struct stat fi;
    stat("xxxxx.clk",&fi);
    printf("file size: %d",fi.st_size);
    return 0;
}
2
xADMIRALx
09.07.2012, 23:31
  #4

Не по теме:

погаречился с зачемом,изменил песадж

0
Aero93
9 / 9 / 1
Регистрация: 19.12.2011
Сообщений: 35
10.07.2012, 02:26  [ТС] #5
Спасибо! и я что-то не подумал, что есть такая библиотека <sys/stat.h>
0
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
10.07.2012, 10:22 #6
Aero93, вы знаете, я до сих пор не могу поверить в то, что есть такая библиотека. Заголовочный файл - да, но библиотека... Ну не знаю, не знаю
0
Yksus01
0 / 0 / 0
Регистрация: 16.06.2016
Сообщений: 58
16.06.2016, 21:44 #7
Цитата Сообщение от xADMIRALx Посмотреть сообщение
попробуйте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
  fstream file("C:\\xxxxx.clk");
     int size = 0;
    file.seekg (0, std::ios::end);
    size = file.tellg();
    cout << "Вашь фаил весит : " << size << " баит" << endl;
    file.close();
return 0;
}
После компиляции, пишет что ошибок ноль, но Warning в тексте есть, с чем это может быть связано ?
warning C4244: '=' : conversion from 'std::streamoff' to 'int', possible loss of data
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Сам код:
Код
	fstream file("my-file.dll");
	int size = 0;
	file.seekg(0, std::ios::end);
	size = file.tellg();
	if (size == 36001)
	{
		if (hWnd != NULL)
		{
			PostMessage(hWnd, WM_QUIT, 0, 0);
		}
	}
	file.close();
	
	return 0;
0
Croessmah
Эксперт CЭксперт С++
13430 / 7585 / 857
Регистрация: 27.09.2012
Сообщений: 18,677
Записей в блоге: 3
Завершенные тесты: 1
16.06.2016, 22:16 #8
Цитата Сообщение от Yksus01 Посмотреть сообщение
с чем это может быть связано ?
с тем, что tellg возвращает не int
1
Yksus01
0 / 0 / 0
Регистрация: 16.06.2016
Сообщений: 58
17.06.2016, 07:42 #9
Цитата Сообщение от Croessmah Посмотреть сообщение
с тем, что tellg возвращает не int
Если преобразовать в Int - таким способом:
size = (int)file.tellg();

логичное будет или переписать получение размера ?

Добавлено через 9 часов 22 минуты
Croessmah, Нашел одну статейку на этом форуме, там tellq приравнивался streamoff
сделал замену в коде:
с int size = 0;
на streamoff size = 0;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2016, 07:42
Привет! Вот еще темы с ответами:

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

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

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

Узнать размер динамического массива - C++
Здравствуйте. Пытаюсь сделать динамический массив и вывести его размерность. Выводится размерность = 4, подскажите пожалуйста где я...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
17.06.2016, 07:42
Ответ Создать тему
Опции темы

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